当前位置 : 主页 > 网页制作 > Nodejs >

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

来源:互联网 收集:自由互联 发布时间:2021-06-16
我必须将我的后端从php迁移到节点.我们使用php crypt(默认随机盐)来哈希密码. 例如,对于密码’d1692fab28b8a56527ae329b3d121c52′,我的基础中有以下加密的pw(取决于我使用的是md5还是sha512,因为
我必须将我的后端从php迁移到节点.我们使用php crypt(默认随机盐)来哈希密码.
例如,对于密码’d1692fab28b8a56527ae329b3d121c52′,我的基础中有以下加密的pw(取决于我使用的是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";

哪个返回正确的加密pw.

我没有设法用任何节点功能获得这样的结果.我试过像这样的东西:

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

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

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

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

(仅支持1美元,但这至少是您要寻找的一部分.)

网友评论