【问题标题】:Is there an equivalent of PHP's hash_hmac in Python/Django? [duplicate]Python/Django 中是否有相当于 PHP 的 hash_hmac? [复制]
【发布时间】:2012-03-27 23:17:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: php python django sha256


    【解决方案1】:

    你想要hmac

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

    【讨论】:

    • 谢谢!我想我的 google-fu 需要磨练。
    • 我在 Python 3.8.5 上收到此代码 raise TypeError("key: expected bytes or bytearray, but got %r" % type(key).__name__) TypeError: key: expected bytes or bytearray, but got 'str' 的 TypeError
    • @jeppoo1 这个答案已有 8 年以上的历史,是为 Python 2 编写的;在 Python 3 中,您将传递字节对象而不是字符串。
    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2012-08-19
    • 2021-09-27
    • 1970-01-01
    相关资源
    最近更新 更多