関数の概要
crypto.pbkdf2はNode.jsの暗号化関数の1つであり、主にパスワードの安全なハッシュ化に使用されます。パスワードを保存する際に平文で保存するのではなく、安全なハッシュ値として保存することでセキュリティを向上させることができます。
パラメータの説明
パラメータ名 | 型 | 用途 |
---|---|---|
password | string or Buffer | ハッシュ化するパスワード |
salt | string or Buffer | ソルト値として使用されるランダムなデータ |
iterations | number | ハッシュ計算の反復回数 |
keylen | number | 生成されるハッシュの長さ |
digest | string | 使用するハッシュアルゴリズム(例: ‘sha256’) |
戻り値
戻り値はBuffer型で、非同期的にハッシュ値が生成されます。
使用例
例1:パスワードのハッシュ化
const crypto = require('crypto');
crypto.pbkdf2('password', 'salt', 100000, 64, 'sha512', (err, derivedKey) => {
if (err) throw err;
console.log(derivedKey.toString('hex'));
});
例2:ハッシュ値の検証
const crypto = require('crypto');
const hashedPassword = '生成されたハッシュ値';
crypto.pbkdf2('password', 'salt', 100000, 64, 'sha512', (err, derivedKey) => {
if (err) throw err;
if (derivedKey.toString('hex') === hashedPassword) {
console.log('パスワードが一致しました');
} else {
console.log('パスワードが一致しません');
}
});
関連する関数
crypto.createHash: ハッシュ関数を生成するための関数
crypto.randomBytes: 暗号セキュリティに適したランダムなバイトデータを生成する関数
まとめ
crypto.pbkdf2はパスワードの安全なハッシュ化に使用される関数であり、適切なソルト値と反復回数を設定することでセキュリティを向上させることができます。ハッシュ化したパスワードはデータベースなどに保存しておく際に、平文のパスワードよりも安全性が高くなります。