This page looks best with JavaScript enabled

HMAC

HMAC

HMAC 的 H 是指 Hash-based,MAC 是指 message authentication code。

計算的輸入

計算 HMAC 需要以下輸入:

  1. key 金鑰
  2. message 訊息
  3. 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,即是結果。