工具用的順手嗎?
你的回饋能幫助我們做得更好
安全計算訊息認證碼,支援SHA256/SHA512等演算法,驗證資料完整性與傳送方身份
配置引數開始計算
概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
HMAC(雜湊訊息認證碼)把訊息、共享金鑰和指定的雜湊函式一起運算,產生一段供比對的認證值。持有相同金鑰的一方,可對相同訊息重算;若結果一致,代表訊息符合該金鑰下的驗證結果。HMAC 不會把原文隱藏,也不能從結果還原原文,因此雖然搜尋時常被稱作「加密」,實際用途是檢查完整性與金鑰持有者的認證。
HMAC(K, m) = H((K′ ⊕ opad) ∥ H((K′ ⊕ ipad) ∥ m))K 是金鑰、m 是訊息、H 是選定的 SHA 雜湊函式;內外層運算使用標準定義的填充常數。這個頁面要求訊息與金鑰都不為空,並以小寫十六進位顯示結果。
頁面欄位接受文字,字串會依文字編碼轉成位元組後參與計算。相同畫面文字若在系統間有不同的空白、換行、字元編碼或欄位排列,實際位元組就可能不同,輸出的 HMAC 也會改變。金鑰同樣必須與協定要求的內容完全一致;若規格提供的是十六進位或 Base64 金鑰,須先確認那些字元代表要直接使用的文字,還是代表需要解碼的位元組。此頁沒有金鑰解碼或訊息正規化設定。
選單預設為 HMAC-SHA256,另列 HMAC-SHA512、HMAC-SHA1 與 HMAC-SHA384。SHA-1、SHA-256、SHA-512 的標準輸出分別為 40、64、128 個十六進位字元;選單中的 SHA-384 路徑則是取 HMAC-SHA512 的前 384 位,並非標準 HMAC-SHA384,不能拿來和符合標準的實作互相比對。正式協定應使用明確指定的演算法,不能只因輸出更長就自行替換。RFC 4231 將各 HMAC-SHA 方案分別列出,並提供互通性測試向量。
以下標準測試例可核對 SHA-256:金鑰填 Jefe,訊息填 what do ya want for nothing?,應得到:
5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843指南
依步驟完成操作,並透過範例核對輸入與結果。
依 API、Webhook 或協定文件選擇 SHA-256、SHA-512 或其他指定選項。若規格要求標準 HMAC-SHA384,請使用其他符合規格的實作,不要選本頁的 SHA-384 項目。
除錯時使用非正式環境的測試金鑰。按協定原樣整理訊息內容,包括欄位順序、標點、大小寫、前後空白與換行;不要自行排序或刪除字元。
輸入完成後結果會即時更新,可用結果旁的複製按鈕複製。若呼叫端要求 Base64、截短值或帶有前綴的格式,這個頁面不會替你轉換,需依協定另行處理。
先用固定測試向量驗證演算法,再用另一端重算同一訊息。若不一致,逐項檢查金鑰位元組、訊息編碼、換行、演算法及輸出格式。
情境
查看這項工具在不同工作與生活流程中的用法。
開發者可用文件提供的測試訊息和測試金鑰計算結果,再對照服務端預期值,找出欄位串接順序或換行不同等問題。
整合人員可輸入脫敏的測試載荷與測試密鑰,確認自己理解的演算法及十六進位表示是否一致;實際請求驗證仍應在應用程式中依供應方規格處理。
教學或自學時,固定訊息後更換金鑰,或固定金鑰後改動訊息一個字元,觀察認證值跟著改變,藉此區分 HMAC 與一般無密鑰雜湊。
問答
集中解答常見疑問與容易混淆的問題。
不可以。HMAC 是訊息認證碼,不是加密或編碼格式;原文需另外保存或傳送,接收方以相同金鑰重算後比對認證值。
請檢查不可見差異,例如前後空白、換行格式、字元編碼、欄位順序,以及金鑰是否被當作文字或解碼後位元組。任何實際輸入位元組不同都會改變結果。
本頁該選項截取 HMAC-SHA512 的前 384 位,不是標準 HMAC-SHA384。若要做相容性或安全用途核對,請改用能直接計算標準 HMAC-SHA384 的工具或程式庫。
此頁只顯示小寫十六進位。協定若要求 Base64、Base64URL、大寫或截短格式,需要依規格把認證值的原始位元組轉成指定格式;不能把十六進位字串本身再當作原始結果編碼。
須知
使用前了解適用範圍、結果限制與必要提醒。
SHA-384 選項不符合標準 HMAC-SHA384,可能造成驗證失敗;請勿用於正式簽章、互通性測試或安全用途。其他選項也只適合手動檢查與教學示例,不應取代正式系統內經審查的密碼學函式庫及協定驗證流程。
推薦
查找相關工具、專題與可用的 API 能力。