日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HMAC(2)哈希运算消息认证码HMAC

發布時間:2025/3/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HMAC(2)哈希运算消息认证码HMAC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 定義

HMAC(Hash-based Message Authentication Code)是一種基于加密Hash函數來實現的MAC算法。
eg. HMAC-MD5(使用MD5作為Hash函數)、HMAC-SHA256(使用SHA256作為Hash函數)

H: Hash函數
m: 消息原文
K:密鑰
K’ :由k通過某種算法得到

在密鑰K后面添加0或者對密鑰K用H進行處理來創建一個字長為B的字符串。
eg.
如果K的字長是20字節,B=64字節,則K后會加入44個零字節0x00;
如果K的字長是120字節,B=64字節,則會用H作用于K后產生64字節的字符串

‖ : 字符拼接
⊕ : XOR位異或運算

假設塊長度為B,
ipad: 一個字節(內容為0x36)重復B次;
opad: 一個字節(內容為0x5C)重復B次;

2. 算法過程

以 HMAC-SHA1為例

通常的過程為:
IV: 哈希函數輸入的初始值
n:哈希函數生成出來的碼長
L:M的分組數

3. 使用場景舉例

ePass USB Key,主要是用作基于公鑰體系(PKI)的數字證書和私鑰的安全載體,RSA 密鑰對是在USB Key內生成的,私鑰永遠不能導出,確保證書持有人的信息安全。

eg. “挑戰/響應”(Challenge/Response)身份認證中,認證流程如下:
1)先由客戶端向服務器發出一個驗證請求。
2)服務器接到此請求后生成一個隨機數并通過網絡傳輸給客戶端(此為挑戰)。
3)客戶端將收到的隨機數提供給ePass,由ePass使用該隨機數與存儲在ePass中的密鑰進行HMAC-MD5運算并得到一個結果作為認證證據傳給服務器(此為響應)。
4)與此同時,服務器也使用該隨機數與存儲在服務器數據庫中的該客戶密鑰進行HMAC-MD5運算,如果服務器的運算結果與客戶端傳回的響應結果相同,則認為客戶端是一個合法用戶 。


【參考】

[1] csdn 【密碼學原理】消息驗證碼MAC的構造方法:HMAC,DAA,CMAC

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的HMAC(2)哈希运算消息认证码HMAC的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。