Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: MD5, hash collision, cryptographic weakness, security vulnerability

Какие проблемы у алгоритма хэширования MD5?

Вопрос проверяет понимание недостатков алгоритма хэширования MD5 и его непригодности для криптографических задач.

Короткий ответ

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

Длинный ответ

Проблемы алгоритма хэширования MD5

MD5 (Message Digest 5) — это криптографическая хэш-функция, разработанная в 1991 году. Со временем в ней были обнаружены серьезные недостатки, которые делают ее небезопасной для большинства современных применений. Основная проблема — уязвимость к коллизиям, когда два разных набора данных производят одинаковый хэш.

Коллизии

В 2004 году исследователи продемонстрировали практические коллизии для MD5. Это означает, что злоумышленник может создать два разных файла или сообщения с одинаковым хэшем, что нарушает целостность данных. Например, можно подделать цифровую подпись или сертификат.

// Пример коллизии MD5 (упрощенно)
// Два разных сообщения с одинаковым хэшем
message1 = "d131dd02c5e6eec4"
message2 = "d131dd02c5e6eec5"
// Оба дают MD5: 79054025255fb1a26e4bc422aef54eb4

Скорость и брутфорс

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

Атаки на предобраз

Хотя атаки на предобраз (нахождение исходных данных по хэшу) для MD5 менее практичны, чем коллизии, они все же существуют. В 2009 году была показана атака со сложностью 2^123, что ниже теоретического предела 2^128. Это делает MD5 слабее, чем идеальная хэш-функция.

Применение и вывод

MD5 все еще используется для проверки целостности данных в небезопасных средах (например, для контрольных сумм файлов), но не для криптографических целей. Вывод: MD5 не следует применять для защиты паролей, цифровых подписей или сертификатов. Вместо него используйте SHA-256 или SHA-3 для хэширования, а для паролей — специализированные функции с солью.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • Networks

Ключевые слова

#MD5

#hash collision

#cryptographic weakness

#security vulnerability

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.