Я кодирую безопасность для веб-сайта в express.js и postgresql db. Теперь я читал о солении и хешировании, и у меня есть код, настроенный с помощью pdkdf2 с использованием модуля шифрования, но моя проблема в том, как я буду структурировать таблицу учетных записей в базе данных. Что, если бы я создал роль входа в систему, которая будет иметь для пароля зашифрованный формат MD5, и этот пароль будет производным ключом из "процедуры" хэша salt n. Будет ли это лишней защитой?
Будет таблица, которая будет иметь следующий вид: UID (идентификатор из роли входа), SALT, HASH. А также роль входа в систему.
Таким образом, при попытке аутентификации код будет пытаться войти в систему с этой ролью, сначала получая связанный UID, генерируя хешированный пароль salt n для предоставленного пароля и аутентифицируясь на уровне БД.
Надеюсь, я понимаю ...
var usrSalt = crypto.randomBytes('128').toString('base64');
//text , salt ,iterations , keylen , callback
crypto.pbkdf2(usr, usrSalt, 10000, 512, function (err, derivedKey) {
if (err) { console.log(err); }
else {
usr = derivedKey;
next();
}
});
P.S Будет ли модуль pgcrypto снова лучше в том же сценарии, просто удалив код на node.js.