Как MySQL знает, какой алгоритм использовать при чтении логинов, хранящихся в mysql.user?

Я вижу, что MySQL 5.5 позволяет использовать SHA-2() для установки паролей, и что прямые хеши MD5 небезопасны и больше не должны использоваться (то же самое для функции ПАРОЛЯ по умолчанию).

Перед тем, как я ОБНОВЛЕНА доволен и изменил несколько паролей, как MySQL узнает, какой алгоритм использовать для проверки предоставленного мной пароля? Знает ли он магически, какой алгоритм использовался для шифрования пароля пользователя, или мы указываем это в файле conf?

ОБНОВЛЕНИЕ: я проверил с новой учетной записью, чтобы увидеть, что происходит. Использование PASSWORD ("mypass") работает, однако применение SHA1("mypass") приводит к тому, что эта учетная запись не может войти в систему.

1 ответ

Решение

Вероятно, по длине хеша, хранящегося в таблице. Хеш MD5 будет 128 бит, хеш SHA1 будет 160 бит, а хеш SHA2 будет не менее 224 бит.

Другие вопросы по тегам