在python中使用字符串+密钥计算SHA哈希

2024-01-25

亚马逊产品 API 现在需要对我尝试生成 ush Python 的每个请求进行签名。

我挂断的步骤是这个:

“使用上面的字符串和我们的“虚拟”秘密访问密钥:1234567890,使用 SHA256 哈希算法计算符合 RFC 2104 的 HMAC。有关此步骤的更多信息,请参阅适用于您的编程语言的文档和代码示例。”

给定一个字符串和一个密钥(在本例中为 1234567890),如何使用 Python 计算这个哈希值?

- - - - - - 更新 - - - - - - -

使用 HMAC.new 的第一个解决方案看起来是正确的,但我得到的结果与它们不同。

http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?rest-signature.html http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?rest-signature.html

根据亚马逊的示例,当您散列密钥 1234567890 和以下字符串时

GET
webservices.amazon.com
/onca/xml
AWSAccessKeyId=00000000000000000000&ItemId=0679722769&Operation=I
temLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReview
s&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&
Version=2009-01-06

您应该得到以下签名:'Nace+U3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg='

我得到这个:'411a59403c9f58b4a434c9c6a14ef6e363acc1d1bb2c6faf9adc30e20898c83b'


import hmac
import hashlib
import base64
dig = hmac.new(b'1234567890', msg=your_bytes_string, digestmod=hashlib.sha256).digest()
base64.b64encode(dig).decode()      # py3k-mode
'Nace+U3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg='
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在python中使用字符串+密钥计算SHA哈希 的相关文章

随机推荐