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?

È stato utile?

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
scroll top