繁体   English   中英

jsSHA 和 Python hashlib 对相同的输入给出不同的结果

[英]jsSHA and Python hashlib give different results for same input

以下片段使用 Nodejs 和 Python 从相同的输入内容计算 hash,但它们给出不同的结果。 有点奇怪。

 // npm install jssha const jssha = require("jssha"); var s = new jssha("SHA-1", "TEXT"); s.setHMACKey("abc", "TEXT") s.update("123") console.log(s.getHMAC("B64"))

结果是vpEGplDt4B9KMf3iOB0G9ftz5hI=

 import hmac import hashlib import base64 hashed = hmac.new(b"abc", b"TEXT", hashlib.sha1) hashed.update("123".encode('utf-8')) print(base64.b64encode(hashed.digest()).decode())

结果是f1/O4xLhhZgwtm6IMAwLDmjzQgg=

这将获得与 javascript 相同的 hmac:

 import hmac import hashlib import base64 hashed = hmac.new(key=b"abc", msg=b"", digestmod=hashlib.sha1) hashed.update("123".encode('utf-8')) print(base64.b64encode(hashed.digest()).decode()) # vpEGplDt4B9KMf3iOB0G9ftz5hI=

我对这个 javascript api 一无所知,但我猜"TEXT"告诉 javascript 数据/密钥是如何编码的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM