I am taking message and key from this URL

import hmac
import hashlib
import base64
my = "/api/embedded_dashboard?data=%7B%22dashboard%22%3A7863%2C%22embed%22%3A%22v2%22%2C%22filters%22%3A%5B%7B%22name%22%3A%22Filter1%22%2C%22value%22%3A%22value1%22%7D%2C%7B%22name%22%3A%22Filter2%22%2C%22value%22%3A%221234%22%7D%5D%7D"
key = "e179017a-62b0-4996-8a38-e91aa9f1"
print(hashlib.sha256(my + key).hexdigest())

我得到的结果是:
2df1d58a56198b2a9267a9955c31291cd454bdb3089a7c42f5d439bbacfb3b88

预期结果:
adcb671e8e24572464c31e8f9ffc5f638ab302a0b673f72554d3cff96a692740

最佳答案

您根本没有在代码中使用hmac
使用hmac的典型方法是,根据密钥、消息构造一个hmac对象,并通过传入其构造函数来标识散列算法:

h = hmac.new( key, my, hashlib.sha256 )
print( h.hexdigest() )

它应该输出
adcb671e8e24572464c31e8f9ffc5f638ab302a0b673f72554d3cff96a692740

你的示例数据。

关于python - 如何在python代码中使用SHA256-HMAC?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39767297/

10-12 23:28