Comment fonctionne le hachage des mots de passe MySQL ?

MySQL utilise le hachage cryptographique pour stocker les mots de passe des utilisateurs de manière sécurisée. Au lieu de stocker les mots de passe en texte clair, MySQL les convertit en chaînes de hachage de longueur fixe à l'aide de fonctions mathématiques à sens unique. Lorsqu'un utilisateur tente de se connecter, MySQL hache le mot de passe fourni et le compare au hachage stocké. S'ils correspondent, l'authentification réussit. Cette approche garantit que même si quelqu'un accède à la base de données, il ne peut pas lire directement les mots de passe des utilisateurs.

L'algorithme moderne MySQL Native Password applique le hachage SHA‑1 deux fois : SHA1(SHA1(password)). Ce double hachage ajoute une couche de sécurité supplémentaire. La chaîne hexadécimale résultante de 40 caractères est préfixée d'un astérisque (*) pour indiquer qu'il s'agit d'un mot de passe haché, produisant des valeurs telles que *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19.

Description de l'outil

Ce générateur de hachage de mot de passe MySQL crée des hachages d'authentification compatibles avec les bases de données MySQL et MariaDB. Saisissez n'importe quel mot de passe et générez instantanément le hachage correspondant, utilisable directement dans des instructions SQL telles que CREATE USER ou ALTER USER. L'outil prend en charge à la fois le format moderne MySQL Native Password (MySQL 4.1 et versions ultérieures) et le format hérité Old Password pour les systèmes plus anciens.

Exemples

MySQL Native Password (4.1 + ):

  • Entrée : mypassword
  • Sortie : *FABE5482D5AADF36D028AC443D117BE1180B9725

Old Password (Pre-4.1):

  • Entrée : mypassword
  • Sortie : 162eebfb6477e5d3

Utilisation SQL :

-- Créez l'utilisateur avec le mot de passe haché
CREATE USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

-- Mettez à jour le mot de passe de l'utilisateur existant
ALTER USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

Fonctionnalités

  • MySQL Native Password : génère des hachages SHA1(SHA1(password)) pour MySQL 4.1 + et MariaDB
  • Legacy Old Password : prend en charge le format de hachage pré‑MySQL 4.1 pour la compatibilité ascendante
  • Hachage en temps réel : le hachage se met à jour instantanément pendant la saisie
  • Bascule de visibilité du mot de passe : affiche ou masque le champ du mot de passe pour faciliter la saisie
  • Copie en un clic : copie rapidement le hachage généré dans le presse‑papiers

Cas d'utilisation

  • Création de comptes d'utilisateurs MySQL avec des mots de passe pré‑hachés dans les scripts de déploiement
  • Migration d'utilisateurs entre bases de données MySQL tout en conservant les hachages des mots de passe
  • Test et validation des configurations d'authentification MySQL
  • Génération de hachages de mots de passe pour les applications compatibles MySQL
  • Résolution des problèmes d'authentification en comparant les hachages attendus et réels

Formats de hachage pris en charge

Format Algorithme Version MySQL Exemple de sortie
MySQL Native Password SHA1(SHA1(password)) 4.1+ *2470C0C06DEE42FD...
Old Password Custom hash Pre-4.1 6f8c114b58f2ce9e

Considérations de sécurité

Le hachage MySQL Native Password est le format recommandé pour toutes les installations modernes de MySQL et MariaDB. Le format Old Password est considéré comme peu sûr et ne doit être utilisé que pour la compatibilité avec des systèmes hérités qui ne peuvent pas être mis à jour. MySQL 8.0 a introduit caching_sha2_password comme nouveau défaut, mais mysql_native_password reste largement supporté et couramment utilisé.