我目前正在学习 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
。然后你会使用crypto.createHash()
它使用 OpenSSL 生成哈希值。也就是说,您可以生成的哈希类型取决于您安装的 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);
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)