【发布时间】:2019-05-29 05:07:01
【问题描述】:
我正在尝试让 python 函数和 nodejs 函数计算相同的哈希值。但是,nodejs crypto 和 python hashlib 输出的二进制文件似乎不同。
我使用的python是:
hash = hashlib.sha512()
hash.update(salt)
hash.update(password.encode('utf8'))
hash.digest()
节点/咖啡脚本是:
crypto.createHash('sha512').update(salt, 'binary').update(password, 'utf8').digest()
这些行应该产生相同的结果,但由于某种原因它们不会。帮忙?
【问题讨论】:
-
您能否将运行这两个示例的结果与示例输入一起包含在内?
-
当我运行完全相同的东西时,我得到了相同的结果——除了咖啡脚本返回一个 Unicode 字符串(显然是 Latin-1 解码?),而 Python(至少 3.x)返回一个 @ 987654323@ 值。所以,对于第三个字符,我得到了
'\u0006'与'\x06'之类的东西。 -
经过测试,Python 2.x 也是如此。
标签: python node.js cryptography sha512 node-crypto