簡體   English   中英

如何驗證在node.js中使用php-crypt創建的哈希

[英]How to verify hash created with php-crypt in node.js

我必須將我的后端從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美元,但這至少是您要尋找的一部分。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM