Frage

bcrypt die javadoc hat diesen Code dafür, wie ein Kennwort zu verschlüsseln :

String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); 

Um zu überprüfen, ob ein Text-Kennwort übereinstimmt, die zuvor gehasht wurden, verwenden Sie die checkpw Methode:

if (BCrypt.checkpw(candidate_password, stored_hash))
    System.out.println("It matches");
else
    System.out.println("It does not match");

Dieser Code-Schnipsel zu mir bedeuten, dass das zufällig erzeugte Salz wird weggeworfen. Ist dies der Fall, oder ist das nur ein irreführender Code-Snippet?

War es hilfreich?

Lösung

Das Salz wird in die Hash-Incorporated (codiert in einem Base64-style-Format).

Zum Beispiel in der traditionellen Unix-Passwörtern das Salz als die ersten beiden Zeichen des Passworts gespeichert wurde. Die verbleibenden Zeichen repräsentiert den Hash-Wert. Die Checker-Funktion weiß das, und zieht den Hash auseinander das Salz wieder aus.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top