Javascript 为python编码的内容十六进制的等效CryptoJS SHA512哈希?
我正在尝试进行经过身份验证的API调用。JS中的文档示例说明contentHash头必须填充以下内容:Javascript 为python编码的内容十六进制的等效CryptoJS SHA512哈希?,javascript,python,cryptojs,hashlib,Javascript,Python,Cryptojs,Hashlib,我正在尝试进行经过身份验证的API调用。JS中的文档示例说明contentHash头必须填充以下内容: content = {currencySymbol:symbol}; var contentHash = CryptoJS.SHA512(JSON.stringify(content)).toString(CryptoJS.enc.Hex); 我正在用Python编写请求,不断得到无效的\u内容\u散列。这就是我到目前为止所做的: content = {"currencySymbol":"
content = {currencySymbol:symbol};
var contentHash = CryptoJS.SHA512(JSON.stringify(content)).toString(CryptoJS.enc.Hex);
我正在用Python编写请求,不断得到无效的\u内容\u散列。这就是我到目前为止所做的:
content = {"currencySymbol":"BTC"}
contentHash = hashlib.sha512(json.dumps(content, separators=(',',':')).encode('latin1')).hexdigest()
散列:18AA13A42B5EFE3C45B3705626F23FCC4F3B4ACF5E479F2F5021272CDD80BAA0BA6DDF8DCBD0F1B88008AAF9EC33874E4BE9AB6EC2DECE611C2DBDCA87560
预期散列:E6E0B5E9941269E61FB41BD4F6A0DC5BE0DA1C011087A057FF88FE3DE98F41C66881983DD14662C88B6293663D942C93511CFD7F9CC5250E686B16DE53A18F57
我不知道我的要求有什么问题。请给我一些建议 您的问题是
json.dumps
默认情况下会应用一些小的漂亮打印,但是json.stringify
不会
试试这个:
content = {'currencySymbol':'BTC'}
contentHash = hashlib.sha512(json.dumps(content, separators=(',',':')).encode('latin1')).hexdigest()
通过将分隔符=(',',':')
添加到json.dumps
,它将删除默认情况下添加的额外空白
对于
json.dumps
您的问题是json.dumps
默认情况下会应用一些小的漂亮打印,但json.stringify
不会
试试这个:
content = {'currencySymbol':'BTC'}
contentHash = hashlib.sha512(json.dumps(content, separators=(',',':')).encode('latin1')).hexdigest()
通过将分隔符=(',',':')
添加到json.dumps
,它将删除默认情况下添加的额外空白
对于
json.dumps
你能链接你正在使用的API吗?你从哪里得到的“预期哈希”?我试着运行原始的JS,发现第一个散列(“散列”)就是结果。你能检查一下这是否符合你的期望吗?你能链接你正在使用的API吗?你从哪里得到的“预期哈希”?我试着运行原始的JS,发现第一个散列(“散列”)就是结果。你能检查一下这是否符合你的期望吗?谢谢你的解决方案,但我仍然得到相同的哈希值。你能链接你正在使用的api吗?你有什么想法吗?对不起,我尝试了15分钟左右的时间来摆弄它,但无法找到它。他们的API不是最好的:/n您可以尝试重新提问,并将其具体化为关于bittrex API的问题。其他人可能知道如何设置它。谢谢你的解决方案,但我仍然得到相同的哈希值。你能链接你正在使用的api吗?你有什么想法吗?对不起,我尝试了15分钟左右摆弄它,但没有弄清楚。他们的API不是最好的:/n您可以尝试重新提问,并将其具体化为关于bittrex API的问题。其他人可能知道如何设置它。