建立 HMAC
計算 HMAC
- 呼叫CryptAcquireCoNtext以取得 Microsoft密碼編譯服務提供者 (CSP) 的指標。
- 呼叫CryptCreateHash來建立HMAC雜湊物件的控制碼。 在 Algid 參數中傳遞CALG_HMAC。 在hKey參數中傳遞對稱金鑰的控制碼。 此對稱金鑰是用來計算 HMAC 的金鑰。
- 指定雜湊類型,方法是呼叫 CryptSetHashParam 並將 dwParam 參數設定為值HP_HMAC_INFO。 pbData參數必須指向初始化HMAC_INFO結構。
- 呼叫 CryptHashData 開始計算資料的 HMAC。 第一次呼叫 CryptHashData 會導致使用 XOR 運算子與內部字串和資料結合索引鍵值。 XOR 作業的結果會雜湊,然後雜湊傳送至CryptHashData) 呼叫中所傳遞pbData參數所指向 HMAC (的目標資料。 如有必要,接著可能會對 CryptHashData 進行後續呼叫,以完成目標資料的雜湊。
- 呼叫 CryptGetHashParam ,並將 dwParam 參數設定為 HP_HASHVAL。 此呼叫會導致內部雜湊完成,並使用 XOR 與索引鍵結合外部字串。 XOR 作業的結果會經過雜湊處理,然後在上一個步驟中完成的內部雜湊結果 (雜湊處理) 。 然後,外部雜湊會在 pbData 參數中完成並傳回,並在 dwDataLen 參數中傳回長度。