NodeJS - SHA256 Cryptage de Mot de passe
Je suis actuellement en apprentissage à propos du cryptage et mot de passe de sécurité en NodeJS. Je travaille avec un exemple actuel qui est actuellement à l'aide de PBKDF2, j'aimerais basculer ce à utiliser SHA256 à la place. Est-ce possible et/ou de sens? Comment pourrais-je aller à ce sujet?
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);
});
});
}
};
- Cela peut vous aider stackoverflow.com/questions/13714103/...
- C'est un assez bon résumé de hachage de mot de passe: crackstation.net/hashing-security.htm
- npmjs.com/package/sha256 Vérifier que ce module
- S'il vous plaît ne pas utiliser sha256 pour le hachage de mot de passe security.stackexchange.com/questions/211/...
Vous devez vous connecter pour publier un commentaire.
Si voulait produire
sha256
de tables de hachage, alors vous devez déposer les itérations et la longueur de la propriété comme ceux qui sont spécifiques àpbkdf2
. Ensuite, vous devez utilisercrypto.createHash()
qui utilise OpenSSL pour générer les tables de hachage. Cela étant dit, les types de hachages, vous pouvez générer dépendent de la version d'OpenSSL que vous avez installés.Votre spécifiques de mise en œuvre pourrait ressembler à ceci:
sha256
, c'est juste dans un autre encodage. La personne qui a posé la question également utilisébase64
comme son encodage, donc, j'ai répondu comme si.SHA
est un algorithme, un algorithme de hachage. Il n'est pas destiné à être renversé et ne peut pas être. Un algorithme de hachage est censé représenter les données d'une manière unique. Il n'est pas destiné à stocker des données.