HMAC 的 H 是指 Hash-based,MAC 是指 message authentication code。
計算的輸入
計算 HMAC 需要以下輸入:
- key 金鑰
- message 訊息
- hash algorithm 雜湊函式 及其 blocksize
流程
調整 key 長度
若 key 超過 hash 的 blocksize ,先對 key 做 hash。若比 blocksize 短則後方補 0。
產生 o_key_pad 與 i_key_pad
o_key_pad 的產生方式為: 對 key 的每個 byte 和 0x5c
做 xor
i_key_pad 則是使用 0x36
做 xor
輸出
現在有了 o_key_pad 與 i_key_pad,將 i_key_pad 與 message 連接起來做 hash,然後再將 o_key_pad 接到前面,再做一次 hash,即是結果。