Шифрование паролей Node.js

В настоящее время для шифрования паролей используется следующее:

var pass_shasum = crypto.createHash('sha256').update(req.body.password).digest('hex'); 

Не могли бы вы предложить улучшения, чтобы сделать проект более безопасным?

Я использую следующий код для соли и hash-паролей.

 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 и вообще не имеет никаких зависимостей.