Я читал этот вопрос о значениях хэша MD5, и принятый ответ меня смутил. Одним из основных свойств, как я понимаю, криптографической хеш-функции является то, что невозможно найти два разных сообщения (входа) с одинаковым значением хэш-функции.
Тем не менее, консенсусный ответ на вопрос: почему значения хеша MD5 не обратимы? Потому что бесконечное количество входных строк будет генерировать один и тот же вывод. Это кажется мне совершенно противоречивым.
Кроме того, меня несколько недооценивает тот факт, что алгоритмы являются общедоступными, но значения хэша все еще необратимы. Это потому, что всегда есть потеря данных в хеш-функции, поэтому нет способа сказать, какие данные были выброшены?
Что происходит, когда размер входных данных меньше фиксированного размера выходных данных (например, хеширование пароля "abc" )?
EDIT:
Хорошо, дайте мне посмотреть, есть ли у меня это прямо:
- На самом деле очень сложно сделать вывод из хэша , потому что существует бесконечное количество входных строк, которые будут генерировать тот же вывод (необратимое свойство).
- Однако поиск даже одного экземпляра нескольких входных строк, которые генерируют один и тот же вывод, также действительно очень тяжелый (свойство устойчивости к конфликтам).