NodeJS – SHA256密码encryption

目前我正在学习NodeJS中的encryption和密码安全。 我正在使用当前使用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 。 然后你会使用crypto.createHash() ,它使用OpenSSL生成散列。 也就是说,可以生成的哈希types取决于您安装的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); };