Проверка достоверности MD5 сумм

Контрольные суммы MD5 содержат контрольную сумму?

Мне нужно скопировать некоторые контрольные суммы MD5 вручную (нет другого пути), и мне было интересно, есть ли там какой-либо код, который может проверить правильность проверки контрольной суммы так же, как можно проверить номер кредитной карты.

Чтобы быть ясным, я не спрашиваю, как сгенерировать сумму MD5 из файла, чтобы я мог сравнить ее с суммой, которую я получил, я спрашиваю, возможно ли (и я сомневаюсь, что это), чтобы подтвердить что сумма MD5 является подлинной суммой MD5, фактически не ссылаясь на байты, которые были использованы для генерации суммы.

Я хочу определить возможную опечатку.

3 Solutions collect form web for “Проверка достоверности MD5 сумм”

В принципе, у него нет бит контрольной суммы. Чтобы определить опечатку, вы можете попробовать поделиться контрольной суммой (например, MD5) вашей суммы MD5 по тому же каналу и проверить ее.

Фактически это является следствием критериев проектирования криптографического хэша (который MD5 был нацелен) на то, что этого не будет.

Когда вы подаете файл в идеальный 128-битный криптографический хеш, вы не можете предсказать ни один из 128 бит вывода (или их отношение друг к другу), кроме как запустив хэш. Если вы можете, вы на самом деле не получаете 128-битный хэш. Например, если хэш имел бит четности (бит такой, что общее число 1s всегда является нечетным [нечетная четность] или даже даже [даже четность]), тогда у вас фактически есть 127-битный хеш.

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

Проблема в том, что вам нужен 128-битный хеш по какой-то причине: дополнительный бит обычно удваивает работу, необходимую для атаки хэша.

Если избыточность является частью предполагаемого дизайна хэша, тогда он будет называться 124-битным хэшем с 4 битами CRC (и т. Д.). Если это не предназначалось, то это фактически частичный криптоанализ (нарушение) хэша.

Практическое решение

Поскольку вы хотите поймать опечатки, просто добавьте контрольную сумму или контрольную цифру и запишите ее рядом. Вы можете использовать что-то вроде Perl's Algorithm :: Verhoeff, чтобы добавить контрольную цифру.

Контрольная сумма MD5 сама по себе является контрольной суммой. Было бы странно иметь контрольную сумму собственной контрольной суммы / контрольной суммы.

Любая случайная сумма, соответствующая единственным критериям, равным 16 байтам, может быть контрольной суммой MD5. Эти 16 байтов могут быть представлены как 32 шестнадцатеричных цифры, 128 бит или что угодно.

  • csum-ошибки на btrfs, содержащие виртуальный диск
  • Насколько уникальны контрольные суммы?
  • Проверка большого каталога после копирования с одного жесткого диска на другой
  • контрольная сумма поврежденного файла
  • Подавить имя файла с выхода sha512sum
  • Можно ли явно получить полное содержимое файла с плохой контрольной суммой в файловой системе btrfs?
  • Разделение двух каталогов рекурсивно на основе контрольных сумм?
  • Как создать контрольные суммы sha1 в архиве tar на busybox без использования большого дискового пространства
  • Как проверить один файл пакета, а не сам RPM
  • Получение md5 во время wget
  • Репозиторий пакета FreeBSD - как выполнить ручную проверку подписи?
  • Linux и Unix - лучшая ОС в мире.