現在、NodeJSの暗号化とパスワードの安全性について学んでいます。現在PBKDF2を使用している現在の例を使用していますが、代わりにSHA256を使用するように切り替えたいと思います。これは可能ですか?どうすればいいですか?
var crypto = require('crypto');
var len = 128;
var iterations = 13000;
module.exports = function (pwd, salt, fn) {
if (3 == arguments.length) {
crypto.pbkdf2(pwd, salt, iterations, len, fn);
} else {
fn = salt;
crypto.randomBytes(len, function(err, salt){
if (err) return fn(err);
salt = salt.toString('base64');
crypto.pbkdf2(pwd, salt, iterations, len, function(err, hash){
if (err) return fn(err);
fn(null, salt, hash);
});
});
}
};
_sha256
_ハッシュを生成する場合は、_pbkdf2
_に固有の反復と長さプロパティを削除する必要があります。次に、OpenSSLを使用してハッシュを生成するcrypto.createHash()
を使用します。ただし、生成できるハッシュの種類は、インストールしたOpenSSLのバージョンに依存します。
_var crypto = require('crypto');
var hash = crypto.createHash('sha256').update(pwd).digest('base64');
_
特定の実装は次のようになります。
_var crypto = require('crypto');
module.exports = function(pwd, fn) {
var hash = crypto.createHash('sha256').update(pwd).digest('base64');
fn(null, hash);
};
_