Javascript 为python编码的内容十六进制的等效CryptoJS SHA512哈希?

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":"

我正在尝试进行经过身份验证的API调用。JS中的文档示例说明contentHash头必须填充以下内容:

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的问题。其他人可能知道如何设置它。