Czy muszę przechowywać sól z bcrypt?

Javadoc BCrypt ma ten kod, jak zaszyfrować hasło:

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

Aby sprawdzić, czy hasło tekstowe pasuje do hasła, które zostało wcześniej zahaszowane, użyj metody checkpw:

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

Te fragmenty kodu sugerują mi, że losowo wygenerowana sól jest wyrzucana. Czy tak jest, czy to tylko wprowadzający w błąd fragment kodu?

Author: RodeoClown, 2008-11-10

1 answers

Sól jest wbudowana w hash (zakodowany w formacie base64).

Na przykład w tradycyjnych hasłach uniksowych sól była przechowywana jako dwa pierwsze znaki hasła. Pozostałe znaki reprezentowały wartość hash. Funkcja sprawdzania wie o tym i rozdziela hash, aby odzyskać sól.

 206
Author: Greg Hewgill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-21 16:46:24