我目前使用下面的加密密码:
var pass_shasum = crypto.createHash('sha256').update(req.body.password).digest('hex');
能否请您提出改进意见,使项目更安全吗?
我目前使用下面的加密密码:
var pass_shasum = crypto.createHash('sha256').update(req.body.password).digest('hex');
能否请您提出改进意见,使项目更安全吗?
我用的是follwing代码盐和哈希密码。
var bcrypt = require('bcrypt');
exports.cryptPassword = function(password, callback) {
bcrypt.genSalt(10, function(err, salt) {
if (err)
return callback(err);
bcrypt.hash(password, salt, function(err, hash) {
return callback(err, hash);
});
});
};
exports.comparePassword = function(plainPass, hashword, callback) {
bcrypt.compare(plainPass, hashword, function(err, isPasswordMatch) {
return err == null ?
callback(null, isPasswordMatch) :
callback(err);
});
};
bcrypt也可以同步调用。 样品的CoffeeScript:
bcrypt = require('bcrypt')
encryptionUtil =
encryptPassword: (password, salt) ->
salt ?= bcrypt.genSaltSync()
encryptedPassword = bcrypt.hashSync(password, salt)
{salt, encryptedPassword}
comparePassword: (password, salt, encryptedPasswordToCompareTo) ->
{encryptedPassword} = @encryptPassword(password, salt)
encryptedPassword == encryptedPasswordToCompareTo
module.exports = encryptionUtil
人们也为节点bcrypt-模块的NodeJS。 https://github.com/shaneGirish/bcrypt-nodejs 。
以前我用已经在这里bcrypt模块提及,但陷入对Win7的X64的问题。 在另一方面bcrypt - 是的NodeJS纯JS实现bcrypt,并在所有没有任何相关性。
您可以使用bcrypt-JS包加密的密码。
哈希密码:
bcrypt.genSalt(10, function(err, salt) { bcrypt.hash("B4c0/\/", salt, function(err, hash) { // Store hash in your password DB. }); });
要检查您的密码,
// Load hash from your password DB. bcrypt.compare("B4c0/\/", hash, function(err, res) { // res === true });
您可以访问https://www.npmjs.com/package/bcryptjs对bcryptjs更多信息。