有没有类似于PHP';Python/Django中的hash_hmac


Is there an equivalent of PHP's hash_hmac in Python/Django?

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

$token = hash_hmac("sha256", "12345", "sharedpassword");

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

您需要hmac

hmac.new("sharedpassword", "12345", hashlib.sha256).hexdigest()

或在python 3:中

hmac.new(bytes("sharedpassword", 'UTF-8'), "12345".encode(), hashlib.sha256).hexdigest()