В криптографии уже с десяток лет говорят, что MD5 и SHA1 — это фактически пережиток прошлого. Они всё ещё используются в куче проектов из-за простоты и поддержки, но с практической стороны это всё очень шатко. Коллизии у MD5 ловятся за секунды, SHA1 тоже не далеко ушёл — его давно взломали исследователи, и он не годится для важных задач типа сертификации или подписи.
Если у вас система всё ещё где-то строится на MD5 или SHA1 — лучше сразу проверить, куда можно перейти на SHA-256 или лучше, SHA-3. Практика показывает: не только теоретические уязвимости имеют значение, но и реальная безопасность безопасности — ничто не мешает злоумышленникам воспользоваться этой слабиной.
Проверить, что в проекте — просто: ищите в коде функции хеширования, там где данные важные хранятся или проверяются. Особенно настораживает, если пароли или токены завязаны на старые алгоритмы, тоже стоит пересмотреть.
Вариант решения — перекодить то, что можно, внедрить современные структуры (например, bcrypt, scrypt, Argon2 для паролей). Да, это требует времени, но лучше сделать рискованный апгрейд сейчас, чем потом иметь головную боль с компрометацией.
Кстати, многие современные фреймворки и библиотеки сами уже подталкивают к отказу от старого — пора и нам подтягиваться.
Как вы обычно проверяете у себя проекты? Кто-то ещё сидит на MD5?