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

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

Съвременният алгоритъм MySQL Native Password прилага SHA-1 хеширане два пъти: SHA1(SHA1(password)). Това двойно хеширане осигурява допълнителен слой на сигурност. Полученият 40-символен шестнадесетичен низ е предшестван с астериск (*), за да се посочи, че е хеширан пароль, произвеждайки стойности като *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19.

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

Този генератор на MySQL Password Hash създава хешове за удостоверяване, съвместими с 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 остава широко поддържан и често използван.