當前位置:編程學習大全網 - 源碼下載 - 函數HMAC-SHA1

函數HMAC-SHA1

HMAC

根據RFC 2316(Report of the IAB,April 1998),HMAC(散列消息身份驗證碼: Hashed Message Authentication Code)以及IPSec被認為是Interact安全的關鍵性核心協議。它不是散列函數,而是采用了將MD5或SHA1散列函數與***享機密密鑰(與公鑰/私鑰對不同)壹起使用的消息身份驗證機制。基本來說,消息與密鑰組合並運行散列函數。然後運行結果與密鑰組合並再次運行散列函數。這個128位的結果被截斷成96位,成為MAC.

hmac主要應用在身份驗證中,它的使用方法是這樣的:

1. 客戶端發出登錄請求(假設是瀏覽器的GET請求)

2. 服務器返回壹個隨機值,並在會話中記錄這個隨機值

3. 客戶端將該隨機值作為密鑰,用戶密碼進行hmac運算,然後提交給服務器

4. 服務器讀取用戶數據庫中的用戶密碼和步驟2中發送的隨機值做與客戶端壹樣的hmac運算,然後與用戶發送的結果比較,如果結果壹致則驗證用戶合法

在這個過程中,可能遭到安全攻擊的是服務器發送的隨機值和用戶發送的hmac結果,而對於截獲了這兩個值的黑客而言這兩個值是沒有意義的,絕無獲取用戶密碼的可能性,隨機值的引入使hmac只在當前會話中有效,大大增強了安全性和實用性。大多數的語言都實現了hmac算法,比如php的mhash、python的hmac.py、java的MessageDigest類,在web驗證中使用hmac也是可行的,用js進行md5運算的速度也是比較快的。

SHA

安全散列算法SHA (Secure Hash Algorithm)是美國國家標準和技術局發布的國家標準FIPS PUB 180-1,壹般稱為SHA-1。其對長度不超過264二進制位的消息產生160位的消息摘要輸出,按512比特塊處理其輸入。

SHA是壹種數據加密算法,該算法經過加密專家多年來的發展和改進已日益完善,現在已成為公認的最安全的散列算法之壹,並被廣泛使用。該算法的思想是接收壹段明文,然後以壹種不可逆的方式將它轉換成壹段(通常更小)密文,也可以簡單的理解為取壹串輸入碼(稱為預映射或信息),並把它們轉化為長度較短、位數固定的輸出序列即散列值(也稱為信息摘要或信息認證代碼)的過程。散列函數值可以說時對明文的壹種“指紋”或是“摘要”所以對散列值的數字簽名就可以視為對此明文的數字簽名。

HMAC_SHA1

HMAC_SHA1(Hashed Message Authentication Code, Secure Hash Algorithm)是壹種安全的基於加密hash函數和***享密鑰的消息認證協議。它可以有效地防止數據在傳輸過程中被截獲和篡改,維護了數據的完整性、可靠性和安全性。HMAC_SHA1消息認證機制的成功在於壹個加密的hash函數、壹個加密的隨機密鑰和壹個安全的密鑰交換機制。

HMAC_SHA1 其實還是壹種散列算法,只不過是用密鑰來求取摘要值的散列算法。

HMAC_SHA1算法在身份驗證和數據完整性方面可以得到很好的應用,在目前網絡安全也得到較好的實現。

  • 上一篇:孕線k線圖經典圖解
  • 下一篇:形狀編輯軟件源代碼
  • copyright 2024編程學習大全網