JS和PHP的MD5值相同

3
为了一个小项目,我需要JS和PHP都能生成相同的MD5哈希值。我正在使用这个 JavaScript 来将单词转换成MD5(使用 .min 版本)。
单词 "hello" 的输出为:
JS: ec59d44dee488759467970486fc9402d
PHP: 5d41402abc4b2a76b9719d911017c592
它们不相同。我尝试使用 md5(utf8_encode($word)); 替代 md5($word); ,但两者都得到了相同的结果。
有什么好主意吗?非常感谢您的帮助。

PHP版本正确(我已经与MySQL进行了检查)。 - Denys Séguret
不明白你的问题。你是要创建两个文件(一个 PHP 和一个 JS),还是只是对字符串进行哈希处理? - Alfabravo
2
你每次没有使用相同的值。Paj的版本和PHP版本都可以正常工作。因此,输入值中有某些内容发生了变化。 - Jonathan M
好的,各位,错误是我的,我编写了一个脚本,在键盘松开时将单词转换为MD5,不知何故,我让脚本转换了MD5字段...谢谢大家。这些帖子仍然很有帮助,PaulPRO的帖子让我更仔细地查看并找到了问题 :) - Maarten Hartman
2个回答

5

phpjs上的md5函数可以给出正确的结果。它依赖于utf8_encode,因此您也需要这个函数。


这里的重要细节是字符编码。MD5,像所有哈希一样,作用于二进制,而不同编码之间的二进制是不同的。 - DampeS8N

0
如果你想在Javascript中生成md5值,可以使用md5包。
var md5 = require('md5');
console.log(md5('message'));

然后,使用这个MD5在线工具来验证结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接