Две различных строки могут генерировать тот же хэш-код MD5?

То, то, что ASP.net MVC находится только в 'Предварительном просмотре 5' быть поводом для беспокойства при изучении его?

я знаю, что StackOverflow был создан с помощью него, но является там шансом, что Microsoft могла реализовать существенные изменения к платформе, прежде чем это будет официально вне беты/альфы/предварительного выпуска?

89
задан Dency G B 3 February 2016 в 11:46
поделиться

8 ответов

Для набора из четных миллиардов ресурсов вероятность случайных коллизий ничтожно мала - вам не о чем беспокоиться. Принимая во внимание парадокс дня рождения , учитывая набор из 2 ^ 64 (или 18,446,744,073,709,551,616) активов, вероятность единственной коллизии MD5 в этом наборе составляет 50%. В этом масштабе вы, вероятно, превзойдете Google с точки зрения емкости хранилища.

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

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

Если это окажется проблемой, Я предлагаю взглянуть на серию хэш-функций SHA-2 (SHA-256, SHA-384 и SHA-512). Обратной стороной является то, что он немного медленнее и имеет более длинный хеш-вывод.

Я предлагаю взглянуть на серию хэш-функций SHA-2 (SHA-256, SHA-384 и SHA-512). Обратной стороной является то, что он немного медленнее и имеет более длинный хеш-вывод.

Я предлагаю взглянуть на серию хэш-функций SHA-2 (SHA-256, SHA-384 и SHA-512). Обратной стороной является то, что он немного медленнее и имеет более длинный хеш-вывод.

91
ответ дан 24 November 2019 в 07:17
поделиться

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

См. этот и этот вопросы для примеров.

12
ответ дан 24 November 2019 в 07:17
поделиться

MD5 - это хэш-функция - так что да, две разные строки могут абсолютно генерировать конфликтующие коды MD5.

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

37
ответ дан 24 November 2019 в 07:17
поделиться

Да, это возможно. Это называется Hash-коллизией .

При этом такие алгоритмы, как MD5, предназначены для минимизации вероятности коллизии.

В статье в Википедии о MD5 объясняются некоторые уязвимости в MD5, о которых вам следует знать.

4
ответ дан 24 November 2019 в 07:17
поделиться

Да, конечно: хэши MD5 имеют конечную длину, но существует бесконечное количество возможных символьных строк которые могут быть хешированы MD5.

10
ответ дан 24 November 2019 в 07:17
поделиться

Да, это так! Столкновение будет вероятным (хотя риск очень мал). В противном случае у вас будет довольно эффективный метод сжатия!

РЕДАКТИРОВАТЬ : Как говорит Конрад Рудольф: Потенциально неограниченный набор входных данных, преобразованный в конечный набор выходных данных (32 шестнадцатеричных символа) будет приводит к бесконечному количеству столкновений.

3
ответ дан 24 November 2019 в 07:17
поделиться

Для большей информативности. С математической точки зрения, хеш-функции не инъективны .
Это означает, что между начальным набором и результирующим набором не существует отношения 1 к 1 (а является односторонним).

Взаимное соответствие в википедии

РЕДАКТИРОВАТЬ: для полноты существуют инъективные хеш-функции: это называется Perfect хеширование .

4
ответ дан 24 November 2019 в 07:17
поделиться

Как говорили другие люди, да, могут быть конфликты между двумя разными входами. Однако в вашем случае использования я не Не вижу в этом проблемы. Я очень сомневаюсь, что вы столкнетесь с коллизиями - я использовал MD5 для снятия отпечатков сотен тысяч файлов изображений ряда форматов изображений (JPG, растровые, PNG, необработанные) на предыдущем задании, и у меня не было столкновений .

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

3
ответ дан 24 November 2019 в 07:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: