如何在nodejs服务器中检查数字类型的PHP MD5哈希



我正在尝试在NodeJS中生成一个MD5哈希代码,并将其与php生成的数字类型为ex:md5(10)的MD5哈希码进行比较。NodeJS似乎没有办法只生成数字类型的MD5哈希——只支持String、Buffer、Array或Uint8Array类型。

我尝试将数字存储到缓冲区或二进制列表中,但我无法匹配php生成的哈希:

var buffer = new Buffer(16);
buffer.writeDoubleBE(10)
return crypto.createHash("md5").update(buffer).digest("hex");
// result : c6df1eeac30ad1fab5b50994e09033fb
// PHP-generated hash : md5(10) = d3d9446802a44259755d38e6d163e820

php中的MD5究竟对数据类型做了什么
我应该使用哪种数据形式来获得相同的结果?

PHP中的md5函数计算字符串的哈希,因此在您的示例中,它实际上是计算"10〃;。

要在Node.js中做到这一点应该很简单:

const dataToHash = Buffer.from(String(10), "utf-8");
const hash = crypto.createHash("md5").update(dataToHash).digest("hex");
console.log("Hash:", hash);

我们在Node.js中得到的结果与在PHP中得到的相同,例如

Hash: d3d9446802a44259755d38e6d163e820

最新更新