Devo conservare il sale con bcrypt?
-
07-07-2019 - |
Domanda
javadoc di bCrypt ha questo codice per come crittografare una password :
String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt());
Per verificare se una password in testo semplice corrisponde a una password precedentemente hash, utilizzare il metodo checkpw:
if (BCrypt.checkpw(candidate_password, stored_hash))
System.out.println("It matches");
else
System.out.println("It does not match");
Questi frammenti di codice implicano per me che il sale generato casualmente viene gettato via. È questo il caso o è solo un frammento di codice fuorviante?
Soluzione
Il salt è incorporato nell'hash (codificato in un formato in stile base64).
Ad esempio, nelle password Unix tradizionali il salt era memorizzato come i primi due caratteri della password. I caratteri rimanenti rappresentavano il valore di hash. La funzione checker lo sa e separa l'hash per ripristinare il sale.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow