Mit password() ein Passwort eingeben und ausgeben?
razor
- php
Gallo!
was genau bewirkt "PASSWORD()" in mySQL? Ich hab echt in der Doku nachgesehen und habs nicht ganz kapiert.
Mit PASSWORD('passwort') verschlüssle ich doch ein Passwort, oder? Wie aber bekomme ich es jetzt wieder unverschlüsselt raus, bzw. wie kann ich dann schauen, ob Benutzername und Passwort richtig sind, wenn sich jemand einloggen will?
Ich hoffe ihr könnt mir das erklären.
greetz, razor
Gallo!
Ich mache das immer mit der PHP-Funktione md5()(http://www.php.net/manual/de/function.md5.php), da es sich hierbei um eine Einweg-Verschlüselung handelt, kannst Du nicht mehr an das Passwort kommen, aber Du kannst das mit md5 verschlüsselte Passwort in mysql speichern, und dann später das in das logim-Fomrular eingegebene Passwort ebenfalls verschlüsseln und erst dann vergleichen!
Grüß
Andreas
Das heisst ich kann also sowohl mit PASSWORD() in mySQL als auch mit md5() in PHP nur verschlüsseln, es gibt aber für beide keinen Entschlüsselungsmechanismus mehr?
Das Hauptproblem dabei ist nämlich, dass ich dann niemandem sein Passwort schicken kann, wenn er es vergessen hat.
PS: ergibt die Verschlüsselung von immer der gleichen Zeichenfolge auch verschlüsselt sicher wieder die gleiche Zeichenfolge?
hallo,
Das heisst ich kann also sowohl mit PASSWORD() in mySQL als auch mit md5() in PHP nur verschlüsseln, es gibt aber für beide keinen Entschlüsselungsmechanismus mehr?
bei md5 ist das auf jeden fall richtig
Das Hauptproblem dabei ist nämlich, dass ich dann niemandem sein Passwort schicken kann, wenn er es vergessen hat.
stimmt, aber dafür kann auch wirklich niemand die passwörter auspionieren. du kannst stattdessen das passwort auf eine zufällige
zeichenfolge setzen und die dem user schicken.
PS: ergibt die Verschlüsselung von immer der gleichen Zeichenfolge auch verschlüsselt sicher wieder die gleiche Zeichenfolge?
ja ergibt sie
schöne grüße
FICHTL
und wie machen es die seiten, die passwörter schicken, wenn man sie vergißt? Solche Seiten findet man ja eigentlich sehr viel häufiger.
und wie machen es die seiten, die passwörter schicken, wenn man sie vergißt? Solche Seiten findet man ja eigentlich sehr viel häufiger.
Die verschlüsseln die Passwörter nicht, meist übertragen gerade diese Seiten die Passwörter noch nichtmal per SSL. Wenn das viele machen muß das nicht gut sein, und schon gar nicht sicher, da sicherer immer unbequemer ist!
Grüß
Andreas
Hi!
Das heisst ich kann also sowohl mit PASSWORD() in mySQL als auch mit md5() in PHP nur verschlüsseln, es gibt aber für beide keinen Entschlüsselungsmechanismus mehr?
Genau so ist es! ( bei mysql bin ich nicht 100%ig sicher, aber ich denke schon)
Das Hauptproblem dabei ist nämlich, dass ich dann niemandem sein Passwort schicken kann, wenn er es vergessen hat.
Das ist dumm, aber anders wäre es wohl eine große Sicherheitslücke, wenn man Passwörter einfach aus der DB zurück generieren könnte, oder? Ich mache das so, das ich den Leuten dann halt ein neues Passwort schicke!
PS: ergibt die Verschlüsselung von immer der gleichen Zeichenfolge auch verschlüsselt sicher wieder die gleiche Zeichenfolge?
Bei md5() schon, bei crypt() nicht, aber das funktioniert soweit ich weiß trotzdem.
Grüße
Andreas
Das heißt es ist also auf keine Fall ratsam die Passwörter unverschlüsselt einzutragen?
Das heißt es ist also auf keine Fall ratsam die Passwörter unverschlüsselt einzutragen?
es ist immer ein Sicherheitsrisiko. Hab übrigens nachgeschaut, password() in mysql ist eine nicht umkehrbare Verschlüsselung per unix crypt() Funktion. Aber md5 soll meines Wissens "sicherer" sein, vom Algorythmus her und da der String länger ist... aber da bin ich kein Experte, such mal im Archiv, da gibts ein paar wirklich gute Threads zu!
Grüße
Andreas
Hi Andreas,
Das Hauptproblem dabei ist nämlich, dass ich dann niemandem sein
Passwort schicken kann, wenn er es vergessen hat.
Ich mache das so, das ich den Leuten dann halt ein neues Passwort
schicke!
Yep.
Das ist dumm, aber anders wäre es wohl eine große Sicherheitslücke,
wenn man Passwörter einfach aus der DB zurück generieren könnte,
oder?
Wenn jemand direkten Zugriff auf die Datenbank hat, könnte er dort die
Kennworte lesen und anschließend über den normalen Zugang Dinge tun,
die über eine direkte Datenbankmanipulation auffallen könnten.
PS: ergibt die Verschlüsselung von immer der gleichen Zeichenfolge
auch verschlüsselt sicher wieder die gleiche Zeichenfolge?
Ja - wie sonst soll man ein Passwort überprüfen können?
Bei md5() schon, bei crypt() nicht, aber das funktioniert soweit ich
weiß trotzdem.
Bei crypt() besteht die Eingabe aus dem Paar (salt, password) - wenn
beide sich nicht ändern, dann ändert sich auch das Ergebnis der
Verschlüsselung nicht.
Das verwendete salt steht auch am Anfang des verschlüsselten Passworts
Viele Grüße
Michael
hi,
was genau bewirkt "PASSWORD()" in mySQL? Ich hab echt in der Doku nachgesehen und habs nicht ganz kapiert.
Mit PASSWORD('passwort') verschlüssle ich doch ein Passwort, oder? Wie aber bekomme ich es jetzt wieder unverschlüsselt raus, bzw. wie kann ich dann schauen, ob Benutzername und Passwort richtig sind, wenn sich jemand einloggen will?
Ich hoffe ihr könnt mir das erklären.
bin mir nicht ganz sicher aber ich behaupte einfach mal das
password einen one-way-key erstellt den man nicht wieder zurückverwandeln kann. ich verwende eigentlich immer md5 dafür
gibts in PHP auch eine funktion.
http://www.php.net/manual/en/function.md5.php
für password kann ich mir das nur so vorstellen:
SELECT * FROM user WHERE username=hui AND password=PASSWORD('pass')
aber nur geraten
schöne grüße
FICHTL