【问题标题】:How can i check a PHP MD5 hash with number type in nodejs server如何在 nodejs 服务器中检查具有数字类型的 PHP MD5 哈希
【发布时间】:2020-12-08 16:27:05
【问题描述】:

我正在尝试在 NodeJS 中生成 MD5 哈希码,并将其与 php 生成的 MD5 哈希码进行比较,数字类型为 ex:md5(10)。 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 node.js md5


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2017-11-05
    • 2014-05-19
    • 2016-06-24
    相关资源
    最近更新 更多