Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MySQL Password Funktion - Hash-Werte verlängern

Frage Entwicklung Datenbanken

Mitglied: sundrew

sundrew (Level 1) - Jetzt verbinden

06.04.2010, aktualisiert 11:06 Uhr, 4642 Aufrufe, 3 Kommentare

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!
Mitglied: matze2010
06.04.2010 um 11:25 Uhr
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
Bitte warten ..
Mitglied: sundrew
06.04.2010 um 11:52 Uhr
Hi Matze,

danke für deine Antwort.

Die Seite habe ich schon relativ ausführlich gelesen. Meine Spaltenlänge ist >16 Bytes, das ist ein ganz normales varchar-Feld mit Länge 50.

Ich habe es schon mit der auf der Seite beschriebenen OLD_PASSWORD('meinPasswort') Variante versucht - das wird zwar ausgeführt und es steht anschließend ein kurzer Hashwert in der Tabelle, jedoch klappt der Vergleich im Skript nach wie vor nicht... (Also die Abfrage WHERE User_Pwd = PASSWORD('meinpasswort'))
Bitte warten ..
Mitglied: sundrew
06.04.2010 um 11:59 Uhr
Jetzt antworte ich mir mal selber - es liegt im Detail begraben :
Abfrage im Skript muss nun natürlich "...WHERE User_Pwd = OLD_PASSWORD('meinpasswort')" lauten.

Dann müsste ich das nur im Skript überall ändern (lassen) und nach jeder Useranlage oder Passwort-Änderung ein OLD_PASSWORT durchführen.
Bitte warten ..
Ähnliche Inhalte
Sicherheits-Tools
gelöst Hash-Wert fest in Audiodatei schreiben (4)

Frage von Hamoe2 zum Thema Sicherheits-Tools ...

Datenbanken
gelöst MYSQL Abfrage Werte summieren (3)

Frage von Ghost108 zum Thema Datenbanken ...

VB for Applications
gelöst VBA: Verständnisfrage bei Funktionen, Rückgabe von Werten (3)

Frage von Aximand zum Thema VB for Applications ...

Microsoft
Password management (3)

Frage von TECHGENE zum Thema Microsoft ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Windows Server
Zertifikat am DC erneuern funktioniert nicht (13)

Frage von takvorian zum Thema Windows Server ...