Sto usando bcrypt per generare sali e password di hash, ma non penso che lo stia facendo in modo molto sicuro. Quando uso il seguente codice:Bcrypt non è sicuro alle password di hashing?
bcrypt.genSalt(10, function(err, salt) {
user.salt = salt;
bcrypt.hash(password, salt, function(err, hash) {
user.hashed_password = hash;
console.log(user.salt);
console.log(user.hashed_password);
user.save(function(err) {
if (err) console.log(err);
console.log("saved");
});
});
});
In un esempio, il sale è: $2a$10$mFFjRpY1Vrq7Fy1fFp0fMO
e il hashed_password è: $2a$10$mFFjRpY1Vrq7Fy1fFp0fMOVnlv9cKgAFdCQ5xdtlP6UoKz90i1FMu
L'inizio della password hash è esattamente lo stesso come il sale. Se un utente malintenzionato ha accesso a Salt, non può semplicemente rimuovere il sale dalla hashed_password e la forza bruta o utilizzare una tabella di valori hash predefiniti per determinare la password?
Ho sempre pensato che questo dovrebbe essere l'ordine di hashing una password:
hash(salt + password)
Non
:
salt + hash(password)