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, 4627 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
Datenbanken
gelöst MYSQL Abfrage Werte summieren (3)

Frage von Ghost108 zum Thema Datenbanken ...

SAN, NAS, DAS
Synology weigert password (5)

Frage von AtoAto zum Thema SAN, NAS, DAS ...

Microsoft Office
Excel: Wert aus mehreren Datein suchen und zugehörige Werte ausgeben (10)

Frage von RubyLissy zum Thema Microsoft Office ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (16)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

CMS
Lokales Wordpress im LAN - wie aufsetzen? (16)

Frage von Static zum Thema CMS ...

LAN, WAN, Wireless
IP im privaten Netz nicht erreichbar (14)

Frage von guntis zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
Devolo DLAN 500 pro Wireless+ (13)

Frage von IceAge zum Thema LAN, WAN, Wireless ...