Нужно ли хранить соль с bcrypt?

176

bCrypt javadoc имеет этот код для шифрования пароля:

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

Чтобы проверить, совпадает ли пароль открытого текста с ранее сохраненным хэшем, используйте метод checkpw:

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

Эти фрагменты кода означают, что случайно сгенерированная соль выбрасывается. Это так, или это просто вводящий в заблуждение фрагмент кода?

Теги:
encryption
passwords
bcrypt
salt

1 ответ

205
Лучший ответ

Соль включается в хэш (кодируется в формате в формате base64).

Например, в традиционных паролях Unix соль хранилась в качестве первых двух символов пароля. Остальные символы представляли хеш-значение. Функция checker знает это и вытягивает хэш отдельно, чтобы вернуть соль.

  • 59
    Соль включена в пароль. Так что вам не нужно спасать соль.
  • 2
    Спасибо за это. Я хотел бы, чтобы они сказали это в javadoc :) (Я посмотрел на источник и подтвердил - но я не знал, что я искал раньше)
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню