sha-hmac

MAC----message authentication code,保證數據完整性的一個技術。算法

HMAC相似於標準的sha運算,只是對於生成的mac增長了基於key的密鑰保護app

  生成的mac值,隨着sender的payload一塊兒發送給receiveder。code

  receiveder,拿到mac先進行數據完整性的校驗-----從新計算payload,獲得本身的mac,與傳輸過來的mac進行比較。blog

 

HMAC對應的nist標準爲FIPS 198-1,其中只是規定了hmac的算法流程,mac計算engine,能夠使用nist中推薦的任何hash 算法ip

HMAC須要的輸入信息;hash

  1) hash engine的block size的大小(以byte爲單位),Bio

  2) inner pad;byte---"0x36",重複B次;im

   outer pad;byte---"0x5c",重複B次;技術

  3) 輸入的key,長度任意,須要通過定義的padding,轉變爲K0;數據

 

流程:

  1) padding key,目的是將輸入的任意長度的key,轉換爲block_size的大小。

    若是輸入的key的長度小於等於block size的大小,直接append 「0」;

    若是輸入的key的長度大於block size的大小,先進行hash engine計算,以後append 「0」,組成block size大小

  2) 計算兩次hash,輸出最終的mac值,

    hash((K0+opad) || hash((K0+ipad) || text ))

 

  

本站公眾號
   歡迎關注本站公眾號,獲取更多信息