MySQL Password Funktion - Hash-Werte verlängern
Hallo liebe Community!
Ich habe einen Dump einer DB von einem MySQL Server 4.0 auf einem MySQL Server 5.1 einspielen müssen.
In besagter Datenbank wurde eine Spalte "User_Pwd" mit der MySQL PASSWORD() Funktion befüllt, sprich es stehen lauter Hashwerte in dieser Spalte.
Nun gibt es zu dieser DB auch eine Webanwendung, die sehr oft Abfragen ausführt alà "SELECT * FROM ... WHERE ... AND User_Pwd = PASSWORD('meinpasswort')" - das funktioniert ja leider nicht, denn die PASSWORD() Funktion in MySQL 5.1 liefert 41 Byte lange Hashwerte - und in der Tabelle stehen nur 16 Byte lange Werte. Der Vergleich schlägt also fehl.
Wie kann ich nun einen Vergleich durchführen OHNE die Hashwerte in der Spalte anrühren zu müssen?!
Vielen Dank für jeden Tipp!
In besagter Datenbank wurde eine Spalte "User_Pwd" mit der MySQL PASSWORD() Funktion befüllt, sprich es stehen lauter Hashwerte in dieser Spalte.
Nun gibt es zu dieser DB auch eine Webanwendung, die sehr oft Abfragen ausführt alà "SELECT * FROM ... WHERE ... AND User_Pwd = PASSWORD('meinpasswort')" - das funktioniert ja leider nicht, denn die PASSWORD() Funktion in MySQL 5.1 liefert 41 Byte lange Hashwerte - und in der Tabelle stehen nur 16 Byte lange Werte. Der Vergleich schlägt also fehl.
Wie kann ich nun einen Vergleich durchführen OHNE die Hashwerte in der Spalte anrühren zu müssen?!
Vielen Dank für jeden Tipp!
Please also mark the comments that contributed to the solution of the article
Content-Key: 139912
Url: https://administrator.de/contentid/139912
Printed on: April 20, 2024 at 00:04 o'clock
3 Comments
Latest comment
Hallo sundrew,
lies dir mal folgendes durch:
http://dev.mysql.com/doc/refman/5.1/de/password-hashing.html
insbesondere den Teil
"Die Spalte Password muss breit genug sein, um lange Hashes (41 Bytes) aufzunehmen. Wenn die Spalte nicht aktualisiert wurde und noch die Breite von 16 Bytes hat, stellt der Server fest, dass lange Hashes nicht in die Spalte passen. Insofern werden nur kurze Hashes erzeugt, wenn ein Client passwortändernde Operationen mit PASSWORD(), GRANT oder SET PASSWORD durchführt. Dieses Verhalten tritt auf, wenn Sie auf Version 4.1 aktualisiert, aber das Skript mysql_fix_privilege_tables zur Verbreiterung der Spalte Password noch nicht ausgeführt haben. "
evtl. hilft dir das weiter, wenn du die Spalte der Passwort auf 16 begrenzt.
Lg
Matze
lies dir mal folgendes durch:
http://dev.mysql.com/doc/refman/5.1/de/password-hashing.html
insbesondere den Teil
"Die Spalte Password muss breit genug sein, um lange Hashes (41 Bytes) aufzunehmen. Wenn die Spalte nicht aktualisiert wurde und noch die Breite von 16 Bytes hat, stellt der Server fest, dass lange Hashes nicht in die Spalte passen. Insofern werden nur kurze Hashes erzeugt, wenn ein Client passwortändernde Operationen mit PASSWORD(), GRANT oder SET PASSWORD durchführt. Dieses Verhalten tritt auf, wenn Sie auf Version 4.1 aktualisiert, aber das Skript mysql_fix_privilege_tables zur Verbreiterung der Spalte Password noch nicht ausgeführt haben. "
evtl. hilft dir das weiter, wenn du die Spalte der Passwort auf 16 begrenzt.
Lg
Matze