Maison > Article > base de données > Comment remplacer la fonction PASSWORD dans MySQL 8.0 pour l'authentification par mot de passe ?
La fonction PASSWORD dans MySQL Server 8.0
Dans MySQL Server version 8.0, la fonction PASSWORD se comporte différemment des versions précédentes. Cela peut entraîner des erreurs lors de l'utilisation de la fonction, comme indiqué dans la question.
L'erreur "Code d'erreur : 1064. Vous avez une erreur dans votre syntaxe SQL" indique que le serveur MySQL attend une syntaxe différente pour la fonction MOT DE PASSE. Dans les versions précédentes de MySQL, la fonction PASSWORD était utilisée pour chiffrer un mot de passe à l'aide de l'ancien algorithme de hachage de mot de passe. Cependant, dans MySQL 8.0, cet algorithme a été obsolète et remplacé par un algorithme plus sécurisé.
Pour résoudre ce problème, la question propose une solution qui implique l'utilisation des fonctions SHA1 et CONCAT pour remplacer la fonction PASSWORD. La réponse suggère d'utiliser la requête suivante comme alternative :
<code class="SQL">SELECT CONCAT('*', UPPER(SHA1(UNHEX(SHA1('mypass')))))</code>
Cette requête concatène un astérisque (*) avec la représentation hexadécimale majuscule du hachage SHA1 du hachage SHA1 du mot de passe d'entrée (« mypass ») . Le résultat est similaire au résultat de la fonction PASSWORD dans les versions précédentes de MySQL, ce qui en fait un remplacement approprié à des fins d'authentification.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!