2016-06-02 11 views
2

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()?

+0

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

+0

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. –

+1

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. –

Antwort

3

Es scheint, dass es keine Entsprechung zu OLD_PASSWORD() mit MySQL-Funktionen gibt, außer wenn der Server erlaubt, dass Globals gesetzt werden. Durch die Ausführung der Abfrage SET @@global.old_passwords = 1; als Benutzer mit Super-Berechtigungen, die PASSWORD() Funktion dann Hash-Passwörter mit dem OLD_PASSWORD()-Algorithmus.

Wenn, wie in unserem Fall, Sie keinen Superuser haben (Google CloudSQL unterstützt sie nicht), dann wird ein Ersatzalgorithmus benötigt. Nachfolgend finden Sie die Ersetzungen für verschiedene Sprachen:

C | Perl | PHP | Python

Haftungsausschluss: MySQL Passwort Funktionen are a joke in moderner Sicherheit und soll nicht wenn möglich verwendet werden. Darüber hinaus bin ich nicht verantwortlich für head asploding nach einem Blick auf die oben genannten Algorithmen!