Die PASSWORD-Funktion in MySQL Server 8.0
In MySQL Server Version 8.0 verhält sich die PASSWORD-Funktion anders als in früheren Versionen. Dies kann zu Fehlern bei der Verwendung der Funktion führen, wie in der Frage gezeigt.
Der Fehler „Fehlercode: 1064. Sie haben einen Fehler in Ihrer SQL-Syntax“ weist darauf hin, dass der MySQL-Server eine andere Syntax erwartet die PASSWORT-Funktion. In früheren Versionen von MySQL wurde die PASSWORD-Funktion verwendet, um ein Passwort mithilfe des alten Passwort-Hashing-Algorithmus zu verschlüsseln. In MySQL 8.0 wurde dieser Algorithmus jedoch veraltet und durch einen sichereren ersetzt.
Um dieses Problem zu beheben, bietet die Frage eine Lösung, die die Verwendung von SHA1- und CONCAT-Funktionen als Ersatz für die PASSWORD-Funktion beinhaltet. Die Antwort schlägt die Verwendung der folgenden Abfrage als Alternative vor:
<code class="SQL">SELECT CONCAT('*', UPPER(SHA1(UNHEX(SHA1('mypass')))))</code>
Diese Abfrage verkettet ein Sternchen (*) mit der großgeschriebenen hexadezimalen Darstellung des SHA1-Hashs des SHA1-Hashs des eingegebenen Passworts („mypass“). . Das Ergebnis ähnelt der Ausgabe der PASSWORD-Funktion in früheren MySQL-Versionen und ist somit ein geeigneter Ersatz für Authentifizierungszwecke.
Das obige ist der detaillierte Inhalt vonWie ersetze ich die PASSWORD-Funktion in MySQL 8.0 für die Passwortauthentifizierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!