Ho impostato un sito con Node.js + passaporto per l'autenticazione dell'utente.Bash dell'hash di password in Golang (compatibile con Node.js)?
Ora ho bisogno di migrare a Golang e devo fare l'autenticazione con le password utente salvate in db.
Il codice di crittografia Node.js è:
var bcrypt = require('bcrypt');
bcrypt.genSalt(10, function(err, salt) {
if(err) return next(err);
bcrypt.hash(user.password, salt, function(err, hash) {
if(err) return next(err);
user.password = hash;
next();
});
});
Come fare la stessa stringa hash come Node.js bcrypt con Golang?
Grazie. Uso bcrypt.CompareHashAndPassword per confrontare la password e la stringa scritta da node.js in db e restituire nil. Inizialmente pensavo che le stringhe generate fossero sempre le stesse. Ora capisco. Apprezzo davvero. –
@ user2036213: Non ho mai usato bcrypt prima e sono rimasto un po 'sorpreso dal fatto che ogni esecuzione ha generato un nuovo hash per la stessa password. Ma funziona ancora bene. Impariamo cose nuove ogni giorno :). Happy Go codifica! – ANisus
Erm, questo è il motivo per cui il sale random è utile, per assicurarsi che due utenti con la stessa password non abbiano lo stesso hash (salato). [Here] (https://crackstation.net/hashing-security.htm) è un articolo di fondo lungo ma buono. – rob74