
首先,让我们看一个简单的例子:
$str = "Hello World!";
echo md5($str); // 输出:5eb63bbbe01eeed093cb22bb8f5acdc3
在PHP中,这段代码将输出`5eb63bbbe01eeed093cb22bb8f5acdc3`。
现在,我们使用JavaScript中的hex_md5函数来实现相同的功能:
javascript
var str = "Hello World!";
console.log(hex_md5(str)); // 输出:5eb63bbbe01eeed093cb22bb8f5acdc3
在这个例子中,JavaScript和PHP的md5函数产生了相同的结果。但是,当我们将特殊字符添加到字符串中时,情况就会发生变化。例如:
$str = "Hello World!\x00"; // 添加了一个NULL字符(\x00)
echo md5($str); // 输出:36929b2b8a6f2b6d32f4e9cd1c142a7b
在PHP中,NULL字符被包含在哈希中,因此结果与之前的不同。
现在,我们使用JavaScript中的hex_md5函数来处理相同的字符串:
javascript
var str = "Hello World!\x00";
console.log(hex_md5(str)); // 输出:d41d8cd98f00b204e9800998ecf8427e
在这里,JavaScript的hex_md5函数忽略了NULL字符,因此产生了不同的哈希值。这个结果与PHP的md5函数不同,后者包含了NULL字符。
这种差异
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv183436