Подтвердить что ты не робот

Шифрование паролей NodeJS - SHA256

В настоящее время я изучаю шифрование и безопасность паролей в 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);
      });
    });
  }
};
4b9b3361

Ответ 1

Если вы хотите сгенерировать хэши 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);
};