1. ホーム
  2. node.js

[解決済み] node.bcrypt.jsはどのようにソルトなしでハッシュ化されたパスワードと平文のパスワードを比較するのですか?

2022-10-05 06:16:16

質問

から github :

パスワードをハッシュ化するため。

var bcrypt = require('bcrypt');
bcrypt.genSalt(10, function(err, salt) {
    bcrypt.hash("B4c0/\/", salt, function(err, hash) {
        // Store hash in your password DB.
    });
});

パスワードを確認するため。

// Load hash from your password DB.
bcrypt.compare("B4c0/\/", hash, function(err, res) {
    // res == true
});
bcrypt.compare("not_bacon", hash, function(err, res) {
    // res = false
});

上記から、どうして比較に塩の値が関係しないのでしょうか?私はここで何を見逃しているのでしょうか?

どのように解決するのですか?

ソルトは(平文として)ハッシュに組み込まれます。比較関数は単にハッシュからソルトを取り出し、それを使ってパスワードをハッシュ化し、比較を実行します。