当前位置: 首页 > 面试题库 >

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

马航
2023-03-14
问题内容

现在,Amazon Product API在我尝试生成ushing Python的每个请求中都需要签名。

我挂断的步骤是这一步:

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

给定字符串和私钥(在本例中为1234567890),如何使用Python计算此哈希?

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

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

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=’



 类似资料:
  • 问题内容: 我正在尝试在Android中获取字符串的SHA256。 这是我要匹配的PHP代码: 现在,在Java中,我正在尝试执行以下操作: 但这会打印出来:“ a42yzk3axdv3k4yh98g8” 我在这里做错了什么? 归功于erickson: 问题答案: PHP函数意味着它需要一个字节字符串并将其编码为十六进制数字。 在Java代码中,您尝试获取一堆随机字节,并使用平台的默认字符编码将它

  • 问题内容: 有人可以给我展示一个如何使用Go 1 生成一个字符串的SHA哈希的工作示例吗? 文档页面缺少示例,我在Google上找不到任何有效的代码。 问题答案: 一个例子 : 在此示例中,我从字节数组进行着色。您可以使用以下方法获取字节数组 当然,如果不需要,您不需要在base64中进行编码:您可以使用Sum函数返回的原始字节数组。 下面的评论似乎有些混乱。因此,让我们为下一个用户阐明有关转换为

  • 问题内容: 我一直在使用CryptoJS(即)库在前端进行SHA-3哈希处理。(请参阅http://crypto- js.googlecode.com/svn/tags/3.1.2/build/rollups/sha3.js ) 我想知道是否有任何Java库等效项?但是到目前为止,我还没有找到任何东西。Java SHA-3示例也不是很多。 具有SHA-3,但在Eclipse下不可见。另外,我不确定

  • 我对手动输入的字符串计数有点困惑。我基本上是在计算单词的数量和没有空格的字符的数量。如果可能的话,谁能帮助计算元音? 到目前为止,我只有这些:

  • 行是我构造字符串并将其转换为byte[]以转换为SHA-256散列的地方,其中tmpSessionId是我从HTTP请求中获取的值。产生的散列将在以后的请求中发送。