Для файла или сообщения вычисляют короткое представление — хеш. Повторное вычисление тем же алгоритмом для тех же байтов даёт тот же результат. Это удобно для сравнения содержимого без передачи всего файла.
Хеш не является уникальным номером для всех возможных данных: совпадения математически возможны. В криптографической задаче важно, насколько трудно найти нужное совпадение. Алгоритм выбирают с учётом назначения и известных ограничений.
Хеширование применяют в проверке целостности, цифровой подписи и других криптографических конструкциях. При проверке файла ожидаемый хеш получают из доверенного источника: если атакующий заменил и файл, и контрольное значение, обычное сравнение не обнаружит подмену.
Хранение паролей требует отдельного подхода. Быстрая хеш-функция общего назначения не заменяет предназначенную для паролей схему с солью и регулируемой вычислительной стоимостью. Выбор зависит от задачи, а не от длины записанного хеша.
Администратор получает пакет обновления и контрольное значение из независимого доверенного канала поставщика. Он вычисляет хеш полученного файла тем же алгоритмом и сравнивает значения.
Несовпадение означает, что байты отличаются и установку следует остановить до выяснения причины. Совпадение подтверждает соответствие доверенному значению, но не доказывает отсутствие уязвимостей в самом обновлении. Подпись поставщика проверяют отдельно, если она предусмотрена.
У хеш-функции нет штатной операции расшифрования. Однако короткие или предсказуемые входы можно перебирать. Поэтому один хеш не делает слабый пароль защищённым.
Коллизии невозможны у хорошего алгоритма?Нет. При конечной длине дайджеста совпадения возможны. Требование относится к практической трудности их поиска в рассматриваемой модели угроз.
Совпавший хеш доказывает, что файл безопасен?Нет. Он подтверждает соответствие контрольному значению. Нужны доверенный эталон и отдельная оценка происхождения и содержимого файла.