在Python/Django中是否有相当于PHP的hash_hmac?

ksh*_*hen 23 php python django sha256

我想将访问者转发给第三方付费网站.第三方将使用sha256算法使用PHP的hash_hmac处理他们的付款和POST给我一个64个字符的令牌,该令牌来自一个唯一的订单号和共享密码,如下所示:

$token = hash_hmac("sha256", "12345", "sharedpassword");
Run Code Online (Sandbox Code Playgroud)

然后我想在我的端部使用相同的算法来生成(希望)相同的令牌以验证用户已付款.问题是我找不到一个等效的函数或方法来复制Python中的函数.我最接近的是Python的hashlib,但似乎没有一个函数可以接受2个参数 - 数据和共享密码.有没有人知道在这种情况下适用的hash_hmac等价物?

Amb*_*ber 52

你想要的hmac.

hmac.new("sharedpassword", "12345", hashlib.sha256).hexdigest()
Run Code Online (Sandbox Code Playgroud)

  • @jeppoo1 这个答案已有 8 年以上历史,是为 Python 2 编写的;在 Python 3 中,您将传递一个字节对象而不是字符串。 (2认同)