Ich arbeite mit einer alten Codebasis hier, die derzeit OLD_PASSWORD()
als eine einfache Hash-Funktion verwendet. Diese Codebasis muss jetzt eine Verbindung zu einer Datenbank herstellen, auf der die neueste Version von MySQL 5.7 ausgeführt wird.OLD_PASSWORD Funktion in 5.7.5 +
Das Äquivalent von PASSWORD()
scheint zu sein: UPPER(SHA1(UNHEX(SHA1(password))))
.
Gibt es eine ähnliche Entsprechung zu OLD_PASSWORD()
?
Die Verwendung von 'OLD_PASSWORD()' für die Benutzerauthentifizierung ist eine schreckliche Idee. Wenn Sie also etwas durch etwas wirklich Sicheres ersetzen können, wären Sie viel besser in Form. Ist 'OLD_PASSWORD()' nur ungesalzene MD5? Sie könnten Tests durchführen, um das herauszufinden. Wenn es so ist, ist es absolut nutzlos in Bezug auf den Schutz. – tadman
Ich bin mir sehr bewusst, dass es nicht sicher ist. Wie gesagt, das ist eine alte Codebase. Es ist derzeit nicht in meiner Kontrolle, mich zu ändern. 'OLD_PASSWORD()' scheint eine halbierte MD5-Zeichenfolge (16 Zeichen) zurückzugeben, ist aber nicht wirklich. –
Ich fand [Eine Python-Implementierung der alten MySQL PASSWORD() -Funktion] (https://djangosnippetts.org/snippets/1508/). Ich kann kein Wort von Python sprechen, aber der Algorithmus sieht lächerlich aus. –