Python的ruby代码的等价HMAC SHA512密钥

2024-04-23 17:14:10 发布

您现在位置:Python中文网/ 问答频道 /正文

对于下面的python代码,ruby代码的HMAC SHA512键是什么?在

Python

 import hmac
 import hashlib
 response = hmac.new(PRIVATE_KEY, post_data, hashlib.sha512).hexdigest()

我用ruby添加了一个代码,如下所示。但不会产生与python中相同的响应

红宝石

^{pr2}$

url_request_object=urllib2.request(“%s/%s”%(基\u API_url,url_后缀), 事后数据, 标题) response=urllib2.urlopen(url_request_对象)

以下是我的工作:

   digest = OpenSSL::Digest.new('sha512')

    sign = OpenSSL::HMAC.hexdigest(digest, PRIVATE_KEY, post_data)

Tags: key代码importurlnewdataresponserequest
1条回答
网友
1楼 · 发布于 2024-04-23 17:14:10

不应使用FYI摘要/hmac。从Ruby文档中

CAUTION: Use of this library is discouraged, because this implementation was meant to be experimental but somehow got into the 1.9 series without being noticed.

文档建议使用openssl,但我对rubyhmac比较幸运。另外,SHA512对你来说是绝对必要的吗?下面是一个使用SHA1的解决方案。在

Python

import hmac
import hashlib
response = hmac.new("PRIVATE_KEY", "Stack OverFlow Funtime", hashlib.sha1).hexdigest()

给出203bf02ea1c71df39a1a6b8ad00db836ec89113c

红宝石

^{pr2}$

给出203bf02ea1c71df39a1a6b8ad00db836ec89113c

因此,使用SHA1和rubyhmac,您可以在两种语言中获得相同的哈希值。希望有帮助。在

相关问题 更多 >