如何让 PHP 和 Node.js 中的 hash 具有相同的值?
在 Node.js 中,我有:
var h = crypto.createHash("md5"); // md5
h.update("AAA");
h.digest("hex");
在 PHP 中,我有:
md5("AAA");
但是,两者都有不同的值。我怎样才能让它一样?否则,我应该使用什么其他算法使它们相同,以便我可以将其用作签名计算。谢谢。
哦,实际上。我的错误。当我测试它时,有一个错误..它会 md5 相同的东西。
In node.js, I have:
var h = crypto.createHash("md5"); // md5
h.update("AAA");
h.digest("hex");
In PHP I have:
md5("AAA");
However, both have different value. How can I make it the same? or else, what other algorithm I should use to make them the same, so that I can use it as signature calculation. Thanks.
Oppss.. actually. my mistake. when I test it, there is a bug.. it will md5 the same thing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我过去所做的简单谷歌搜索给了我 => http://japhr.blogspot.com/2010/06 /md5-in-nodejs-and-fabjs.html
Node.js
脚本:
输出:
PHP
代码
输出:
PHP 和 Node.js 的输出是相同的。
C 扩展
你也可以看看 https://github.com/brainfucker/hashlib 它使用 C 实现这会更快。
Simple googling I did in the past gave me => http://japhr.blogspot.com/2010/06/md5-in-nodejs-and-fabjs.html
Node.js
Script:
Output:
PHP
Code
Output:
The output for both PHP and node.js are equal.
C extension
Also you might have look at https://github.com/brainfucker/hashlib which uses C implementation which is going to be faster.
您的代码为我创建了相同的哈希值,您可能在某些时候做错了
Your code creates the same hash value for me, you might doing it wrong at some point
我在为非 UTF8 字符串创建哈希时遇到了同样的问题:
PHP 和 NodeJS 中的结果是不同的,直到我使用 utf8 库。
因此,以下代码对于 PHP 和 NodeJS 都是等效的:
I had the same issue with creating hash for non UTF8 string :
The results in PHP and NodeJS was different until I used utf8 library.
So following code works equivalent for both PHP and NodeJS :
这对我有用。尝试不同的编码:“utf8”、“ascii”或“latin1”。
This worked for me. Try different encodings: 'utf8', 'ascii', or 'latin1'.