Top.Mail.Ru
Ответы

Программирование - помогите разобраться со статьей на википедии "Соль (криптография)".

Здравствуйте. Читаю вот эту статью:
https://ru.wikipedia.org/wiki/Соль_(криптография)

Там есть пример кода и вот такой комментарий:

// crypt извлекает соль из существующего хеша и хеширует входящий пароль с её использованием

А как можно из хеша извлечь соль? Разве это реально? Как это происходит? Хеш на то и хеш, что его нельзя обратить в данные, из которых он был создан. В отличие от шифрования. А если нельзя обратить, то как понять, где данные, а где соль.

По дате
По рейтингу
Аватар пользователя
Просветленный
7лет

Насколько понял, crypt пишет соль в качестве первых символов результирующей строки. И соответственно, когда эта строка указана в качестве второго параметра в crypt - эти первые символы и берутся

"Стандартная функция crypt() на основе DES возвращает соль в качестве первых двух символов возвращаемой строки. Кроме того, она использует только первые восемь символов строки str, поэтому более длинные строки, начинающиеся с тех же восьми символов, сгенерируют один и тот же результат (при использовании одинаковой соли)."

Источник: <a rel="nofollow" href="http://php.net/manual/ru/function.crypt.php" target="_blank">http://php.net/manual/ru/function.crypt.php</a>