簡體   English   中英

SHA256 與 HMAC 空消息

[英]SHA256 vs HMAC empty message

為什么這些函數返回不同的值?

from hashlib import sha256
import hmac

seed = "seed".encode('utf-8')

def genSHA256():
    return = sha256(seed).hexdigest()
    #19b25856e1c150ca834cffc8b59b23adbd0ec0389e58eb22b3b64768098d002b

def genHMACsha256():
    return hmac.new(seed, b"", sha256).hexdigest()
    #2ad1ced5a9ef8e90bce26c0ac9fae5af5e4b4442b2315ed58bf772a54e24fd50

如果我在 HMAC 的消息值中放入空字符串,為什么不返回與簡單 SHA256 相同的值? 這兩個值有關系嗎?

使用 HMAC 時,種子會被ipadopad屏蔽,並且 HMAC 由兩次哈希迭代組成,即使在空字符串上使用 HMAC 也是如此。

基本上,從散列函數獲得與 HMAC 相同結果的唯一方法是使用它來構建 HMAC - 因為 HMAC 定義僅使用散列作為安全原語函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM