В соответствии с документами MySQL о хешировании паролей :
Механизм хеширования паролей был обновлен в MySQL 4.1 для обеспечения большей безопасности и снижения риска перехвата паролей.
Я не уверен, что это означает что-то дополнительное, «уменьшая риск перехвата паролей» или просто означает, что их сложнее взломать, но главное отличие заключается в размеререзультирующий хеш.
До версии 4.1 размер хеша составлял 16 байт.
Начиная с 4.1+ размер хеша составлял 41 байт (*
+ 40 байт).
A16-байтовый хеш довольно мал и его легко найти для коллизий по сравнению с большими хэш-функциями.Обычно считается, что MD5 имеет недостаточную прочность и дает вдвое больше - 32 байта.Для сравнения, 16 байтов в основном жалкие.Для сравнения:
pre-4.1 MySQL PASSWORD: 16 bytes
MD5: 32 bytes
SHA 1: 40 bytes
4.1+ MySQL PASSWORD: 41 bytes (40 bytes, prepended with an asterisk)
SHA-256: 64 bytes
SHA-512: 128 bytes
Новая схема хэширования паролей находится на одном уровне с SHA-1, что немного лучше, чем MD5, но все же недостаточно надежна, чтобы ее можно было рекомендовать для паролей.