Как работает хеширование паролей MySQL?

MySQL использует криптографическое хеширование для безопасного хранения пользовательских паролей. Вместо хранения паролей в открытом виде MySQL преобразует их в фиксированную строку хеша с помощью односторонних математических функций. Когда пользователь пытается войти в систему, MySQL хеширует введённый пароль и сравнивает его с сохранённым хешем. Если они совпадают, аутентификация проходит успешно. Такой подход гарантирует, что даже при получении доступа к базе данных злоумышленник не сможет напрямую прочитать пароли пользователей.

Современный алгоритм MySQL Native Password применяет двойное хеширование SHA-1: SHA1(SHA1(password)). Это двойное хеширование добавляет дополнительный уровень защиты. Полученная 40‑символьная шестнадцатеричная строка предваряется символом звёздочки (*) для указания, что это захешированный пароль, например *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19.

Описание инструмента

Этот генератор хешей паролей MySQL создаёт аутентификационные хеши, совместимые с базами данных MySQL и MariaDB. Введите любой пароль, и мгновенно будет сгенерирован соответствующий хеш, который можно использовать напрямую в SQL‑запросах, таких как CREATE USER или ALTER USER. Инструмент поддерживает как современный формат MySQL Native Password (MySQL 4.1 и новее), так и устаревший формат Old Password для более старых систем.

Примеры

MySQL Native Password (4.1+):

  • Ввод: mypassword
  • Вывод: *FABE5482D5AADF36D028AC443D117BE1180B9725

Old Password (Pre-4.1):

  • Ввод: mypassword
  • Вывод: 162eebfb6477e5d3

Пример использования SQL:

-- Создание пользователя с захешированным паролем
CREATE USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

-- Обновление пароля существующего пользователя
ALTER USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

Возможности

  • MySQL Native Password: Генерирует хеши SHA1(SHA1(password)) для MySQL 4.1+ и MariaDB
  • Legacy Old Password: Поддерживает формат хеша до MySQL 4.1 для обратной совместимости
  • Хеширование в реальном времени: Хеш обновляется мгновенно при вводе
  • Переключатель видимости пароля: Показать или скрыть ввод пароля для удобства
  • Копирование в один клик: Быстро копировать сгенерированный хеш в буфер обмена

Сценарии использования

  • Создание учётных записей MySQL с предварительно захешированными паролями в скриптах развертывания
  • Миграция пользователей между базами данных MySQL с сохранением хешей паролей
  • Тестирование и проверка конфигураций аутентификации MySQL
  • Генерация хешей паролей для приложений, совместимых с MySQL
  • Устранение проблем аутентификации путем сравнения ожидаемых и фактических хешей

Поддерживаемые форматы хешей

Формат Алгоритм Версия MySQL Пример вывода
MySQL Native Password SHA1(SHA1(password)) 4.1+ *2470C0C06DEE42FD...
Old Password Пользовательский хеш Pre-4.1 6f8c114b58f2ce9e

Соображения безопасности

Хеш MySQL Native Password является рекомендованным форматом для всех современных установок MySQL и MariaDB. Формат Old Password считается небезопасным и должен использоваться только для совместимости со старыми системами, которые нельзя обновить. MySQL 8.0 ввёл caching_sha2_password как новый стандартный метод, однако mysql_native_password остаётся широко поддерживаемым и часто используемым.