Общий вопрос о MD5 - PullRequest
       42

Общий вопрос о MD5

1 голос
/ 27 апреля 2010

Так что я просто играю с PHP и функциональностью MD5, извините, если это звучит очень глупо, но я не могу понять, как можно представить неограниченное количество символов ввода в вывод 32-битных символов? Моя логика здесь звучит? Или есть ли предел для входа, который может принимать функция MD5?

Спасибо ...

Ответы [ 7 ]

4 голосов
/ 27 апреля 2010

Это не так. Как и все хеш-функции, есть коллизии, но они должны быть непредсказуемыми и бесполезными для злоумышленников. Тем не менее, MD5 полностью скомпрометирован. Группа успешно использовала коллизию MD5 для создания неутвержденного центра сертификации. Кто-то заметит, что в дикой природе не было прообразов атак, но я думаю, что пора спасать MD5.

3 голосов
/ 27 апреля 2010

md5 не представляет весь контент: это всего лишь ... ну, как сказать, используя нетехнические термины? Допустим, md5 - это краткое изложение вашего контента.

Данный контент всегда получит вам один и тот же md5; и одна небольшая разница в содержании почти всегда дает вам совершенно другой md5 - так что md5 (или другие алгоритмы хеширования) часто используется как способ проверки того, что файл не был поврежден (например, во время передачи) .

Но если у вас есть md5, вы не сможете вернуть контент: вы не можете заново сгенерировать контент из его сводки .

2 голосов
/ 27 апреля 2010

Я думаю, что вы можете путать хеш MD5 со сжатием или шифрованием.

Хеш-код - это просто продукт процесса, который проходит через данные и генерирует данные, которые, вероятно, будут уникальными для данного ввода. Хеши MD5 содержат не все данные, а просто уникальное представление «отпечатка» данных.

1 голос
/ 27 апреля 2010

Возможно иметь Столкновение на любом алгоритме хеширования. Вы просто не можете представить всю информацию в объеме пространства, которое она использует. В противном случае мы бы все использовали алгоритмы хеширования вместо алгоритмов сжатия.

Вероятность столкновения очень мала. Для таких вещей, как пароли, их содержание обычно очень мало. Столкновения с одним и тем же хешем, скорее всего, будут намного больше, чем и бред. С ISO файл коллизий может даже не быть загрузочным. Архивный файл, вероятно, будет невозможно извлечь.

У MD5 есть несколько способов найти коллизии для данного хэша. Я уверен, что другие алгоритмы хеширования тоже. Я считаю, что у md5 есть некоторые проблемы со столкновением, когда вы можете изменить небольшое количество без изменения хэша, поэтому многие люди не рекомендуют его использовать.

В некоторых местах также хранится длина файла (или длина содержимого). Это немного помогает в предотвращении столкновений.

1 голос
/ 27 апреля 2010
  • Аналогия: Отпечатки пальцев.

  • Как это возможно? Хеш-функции в целом полагаются на наличие определенных свойств ...

  • Есть ли предел? Узнайте о столкновении md5 ...

0 голосов
/ 27 апреля 2010

Это не только возможно, но и является неизбежным фактом, что существует много сообщений, которые приведут к одному и тому же хешу. Они обычно упоминаются как столкновения. Но его очень ОЧЕНЬ трудно найти. Хеш - это просто функция, которая генерирует результат, который практически невозможно предсказать, не зная исходного ввода.

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

(и, прежде чем кто-то начнет разжигать меня глупыми ответами, скажите мне, что я хэшировал, чтобы получить: b958cf404456ceb1302015102ec57a64)

С

0 голосов
/ 27 апреля 2010

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

...