[英]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.