同期型の bcrypt 関数を利用する方法
ここでは bcrypt の同期型の関数を利用する例を示します。
非同期型の関数呼び出しについては、「非同期の bcrypt 関数を利用する方法」をみてください。
基本的には非同期を使った方が処理がブロックしない分、リソースを有効に使うことができるのですが、 同期処理は処理の順番が単純でわかりやすい利点もあります。
const bcrypt = require('bcrypt');
const saltRounds = 10;
const password = 'Password123';
console.log('START');
console.time('A');
var salt = bcrypt.genSaltSync(saltRounds);
console.log(`salt = [${salt}]`);
var hash = bcrypt.hashSync(password, salt);
console.log(`hash = [${hash}]`);
console.log('END');
console.timeEnd('A');
ハッシュを使ったパスワードの検証は compareSync 関数を使います。
const bcrypt = require('bcrypt');
const hash = '$2b$10$CW9OqVEHzLLd/RNKJ02zBu9fMytwQGNLjNWa90WuJHL0kOhIwBfDm';
const password = 'Password123';
console.log('START');
console.time('A');
var res = bcrypt.compareSync(password, hash);
console.log(`res=[${res}]`);
console.log('END');
console.timeEnd('A');
以上、ここでは bcrypt の同期型関数の利用方法を示しました。