Вы путаете га sh функцию с алгоритмом сжатия .
Ха sh обычно является односторонней операцией, которая нет никакого способа "un-ha sh" что-то, как только он хешируется. Это нормально, поскольку это не то, для чего используются хеши.
Ha sh функции обычно используются для представления чего-либо произвольной длины в качестве согласованного значения длины. Например, SHA2-256 представляет произвольное количество двоичных данных в виде 256-битного значения. Он спроектирован так, что даже одно-битное изменение на входе приводит к изменению всего ha sh, что затрудняет, если не невозможно, реверсирование процесса хеширования и «угадывание» ввода.
Это не сказать хэши без fl aws. Известно, что MD5 настолько слаб, что нетрудно построить две двоичные строки, которые имеют sh одинаковое значение, генерируя ha sh столкновение . Хороший алгоритм хеширования делает это маловероятным, но ни один алгоритм хеширования не может сделать его невозможным.
Хеши вещей используются для:
- Предоставления «дайджеста» чего-либо для обнаружения фальсификация, как в криптографических c сигнатурах загружаемых вами вещей.
- Распределение данных "случайным образом" по структуре данных, чтобы избежать слипания, как в таблице * sh или словаре.
- Хранение данных, которые не должны быть легко обратимыми, например пароли. Хороший пароль, ха sh, очень трудно угадать, но его довольно просто проверить с помощью пароля-кандидата.
Существует в основном бесконечное количество бинарных документов, которые могут создать данный MD5 га. sh. Это не относится к алгоритмам сжатия без потерь, поскольку сжатое представление по структуре представляет один и только один исходный документ.