gpt4 book ai didi

php - 如何验证在 node.js 中使用 php-crypt 创建的哈希

转载 作者:可可西里 更新时间:2023-10-31 23:41:08 26 4
gpt4 key购买 nike

我必须将我的后端从 php 迁移到 node。我们使用 php crypt(使用默认的随机盐)来散列密码。例如,对于密码“d1692fab28b8a56527ae329b3d121c52”,我的基础中有以下加密密码(取决于我使用的是 md5 还是 sha512,如 $i$ 指定的那样):

$1$7JxJYjJK$oFtCGyVvflspPtxB7YrWP.
$6$CVx6KL5l$wzk3YXlqUaz42Kb9r2lmEJhx/FBUXPRoLWN.20/XMBbgQrhp3vSHkEDF3bJEtpM3M96VZ.AMKatLGSKYZZKNH/

在 php 中我可以用 crypt 验证它们:

echo crypt('d1692fab28b8a56527ae329b3d121c52', '$1$7JxJYjJK$oFtCGyVvflspPtxB7YrWP.');
echo "\n";
echo crypt('d1692fab28b8a56527ae329b3d121c52', '$6$CVx6KL5l$wzk3YXlqUaz42Kb9r2lmEJhx/FBUXPRoLWN.20/XMBbgQrhp3vSHkEDF3bJEtpM3M96VZ.AMKatLGSKYZZKNH/');
echo "\n";

返回正确的加密密码。

我没有设法用任何 Node 函数获得这样的结果。我试过类似的东西:

require("crypto").createHmac("md5", "7JxJYjJK").update("d1692fab28b8a56527ae329b3d121c52").digest("base64");

还有很多其他的,但没有任何成功。有人可以帮我做这个吗?我绝对需要 MD5 版本($1$); sha512 会有点好(我知道这很可怕,但它是生产服务器上使用的 md5 版本,以及测试服务器上使用的 sha512...)。

最佳答案

我刚刚为我的一个项目将原始的 crypt_md5()(在 PHP 中使用)转换为 JavaScript。你可以在这里找到它:

https://github.com/BlaM/cryptMD5-for-javascript

(仅支持 $1$,但这至少是您要查找的内容的一部分。)

关于php - 如何验证在 node.js 中使用 php-crypt 创建的哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19405195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com