URL: https://www.overclockers.at/coding-stuff/mysql_password_45198/page_1 - zur Vollversion wechseln!
hab in einer tabelle einiges mit password() eingetragen damits verschlüsselt wird, möchts aber jetzt auslesen (was ja kein problem wäre) und in eine variable speichern.. (was auch kein problem wäre)..
auslesen will ichs natürlich so, das es nachher nicht mehr verschlüsselt ist.. und leider schaff ichs einfach nicht den richtigen syntax zusammenzubekommen.. hints ?
how encrypted passwords work 
der sinn hinter einem verschlüsseltem passwort ist, es NICHT MEHR entschlüsseln zu können... ich denk die password-funktion wird den md5 drüberlaufen lassen (einwegverschlüsselung, nur verschlüsseln möglich). selbes erreichst mit der php-md5-funktion. das wird bei so ziemlich allen passwörtern angewandt, vor allem in der unix welt. du gibst ein passwort ein, er verschlüsselt es und es kann nie wieder (*) entschlüsselt werden.
stellt sich die frage: wie verwend ich das jetzt? der MD5-algorithmus ist so, dass er bei gleichem string IMMER die selbe folge von zeichen erzeugt. nur ein anderes zeichen erzeugt bereits einen völlig anderen hash. folglich: du nimmst ein passwort, verschlüsselst es, speicherst es. user gibt ein passwort ein, du lässt MD5 drüberlaufen, und vergleichst die _hashes_ miteinander. beispiel: das passwort "user" erzeugt den hash "0815". ein benutzer gibt als passwort "users" ein, hash wird "4711". du vergleichst die hashes, nicht ident, falsches passwort. benutzer gibt "user" ein, du erzeugst den hash "0815", hashes sind ident, passwort korrekt. die wahrscheinlichkeit, dass jemand ein passwort eingibt, das genau den selben hash erzeugt ist sehr klein, wenn auch nicht unmöglich.
(*) entschlüsselt direkt nicht, allerdings kann mittels brute force ein passwort gefunden werden, dass den selben hash hat.
tjo, kleiner ausflug in die einwegverschlüsselung 
edit: du vergleichst dann beispielsweise $myrow[password] (aus der datenbank) mit md5($_POST["password"]) (aus dem formular)
dacht ich mir schon... argl
ok folgendes... i hab ne tabelle wo die ganzen passwörter drinnen stehen.. weswegen ichs brauch.. i muss ein paar zeilen in an andern table kopiern.. dort wird mit md5 verschlüsselt.. jetzt is halt die frage ob das echt das selbe ist.. dann gehts sowiso..
weiß das wer genau?
select user (oder hier true oder konstante
) from users where password=PASSWORD('$pass') and user='$user'
so ca verwendets man dann bei sql (glaub ich zumindest
- $user und $pass vorher zu checken (also addslashes() etc kann nie schaden)
des weiß i eh.. das prob is nur das des für die anwendung da ned geht..
ok grad getestet .. bei md5(bla) kommt was andres raus alls bei password(bla)
naja anwendung umbauen
oder verifizieren und dann das plaintext pass was er eingeben hat weiter verwenden
wäre kein problem.. hier gehts aber um einträge die schon vorhanden sind.. kann ned einfach alle member löschen
wenn die eintraege mit gecrypteten passes vorhanden sind
siehe mein vorheriges pass
wenns um irgnedwelche groesseren aenderungen geht solltest das jeweilige script aufrufen sobald der user sich einlogt und sein plain text pass mal hergibt
aber denoch waer natuerlich eine umstrukturierung besser
nachmal ganz langsam 
i muss von einer tabelle den user verschieben in a andre.. dort wird aber anders verschlüsselt !
jo, russische methode - "mitsniffen". wenn sich ein user erfolgreich einloggt, speicherst das passwort entweder plaintext oder so encrypted, wie du es brauchst, wo anders ab.
problem erklaert
problem geloest
hail to the interactivity of the al'mighty i.r.c. :P
roundup: MySQL verwendet seinen eigenen, nicht sonderlich ausgefeilten[1, 2] Algorithmus. Ein patch[3] für John the Ripper[4] ist (ohne Gewähr und auf eigene Gefahr) verfügbar.
[1] <http://groups.google.com/groups?sel...p;output=gplain>
[2] <http://online.securityfocus.com/bid/1826>
[3] <http://goliath.darktech.org/code/john-mysql-v0.patch>
[4] <http://www.openwall.com/john/>
du kannst ganz einfach de mysql-md5(password) funktion benutzen:
list($md5) = mysql_fetch_row(mysql_query("SELECT PASSWORD('das_passwort')"));
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026