Passwort verschlüsseln (PHP)
-
Ja, zweiseitige Verschlüsselungsalgos sind nicht besoders sicher, da sie sich eben entschlüsseln lassen. Deswegen sind ja auch die meisten Verfahren einseitig
-
Man kann ja auch eine Verschlüsselung benutzen, bei der für die Ver- und Entschlüsselung ein Passwort benötigt wird, dass z.B. in der PHP-Datei als Konstante gespeichert ist. Wer den Quelltext nicht einsehen kann, kann also auch nicht entschlüsseln.
Möglich wäre eine einfache XOR-Verschlüsselung oder irgendetwas komplizierteres, wenn's einem nicht sicher genug ist.
Ansonsten würde ich auch eher eine Einseitige Methode wie MD5 vorschlagen und dem Benutzer einfach ein neues Passwort zuschicken, weil's doch sicherer ist.Gruß,
yanni
-
@prolog ich sagte, dass einseitige Verfahren net sicher seien und wenn du den Thread aufmerksam verfolgt hast, weißt du auch warum... ist also gar net so ein Quatsch :p
-
@tobsen
Aber auch das stimmt nich !
-
mysql bietet die funktion password - das ist wohl das beste
-
jepp Password ist eig die beste funktion für diesen Zweck.. allerdings ist die, genau, wie die anderen nur für einseitige verfahren gut. Aber ich würde dir auch unbedingt zu einem einseitigen verfahren raten, da sonst unbefugte schnell an dein passwort kommen.
Wenn halt einer nen passwort vergessen hat, dann generierst du per zufall nen neues, trägst es in die datenbank ein und schickst es ihm per email zu. Und dann soll ers wieder ändern..cya
-
Wenn ich etwas mit crypt() verschlüssele, wie gross (wie viel char's) wird das dann? wenn ich z.B. ein wort mit der länge 10 char verschlüssele?
-
Nochwas:
wenn ich z.B. crypt("test") speichere
dieses verschlüsselte wieder aus der DB hole, und mit crypt("test") vergleiche, liefert mir das dann den wert true??
-
Bei der Länge bin ich mir grad nicht mehr ganz sicher, kannst du aber ja einfach ausprobieren
Das mit dem Vergleich sollte so schon klappen, aber warum dann nicht gleich die PASSWORD Funktion von MySQL?[ Dieser Beitrag wurde am 23.06.2003 um 21:48 Uhr von flenders editiert. ]
-
ich weiss ned, wie die pssword-funktion geht...
-
UDPATE users SET password = PASSWORD('bla') WHERE user = 'blub';
SELECT id FROM users WHERE user = 'blub' AND password = PASSWORD('bla');Ist nicht getestet - weiteres findest du in der Doku
-
Ok, danke, klappt!
Gude nachd!
-
Anmerkung:
PASSWORD() ist deprecated und sollte nicht mehr verwendet werden.
-> http://www.mysql.com/doc/en/Miscellaneous_functions.html#IDX1344
-
Original erstellt von Sa(n)dman:
**Anmerkung:PASSWORD() ist deprecated und sollte nicht mehr verwendet werden.
-> [url=http://www.mysql.com/doc/en/Miscellaneous_functions.html#IDX1344**]http://www.mysql.com/doc/en/Miscellaneous_functions.html#IDX1344[/QB][/QUOTE][/url]
danke für den link und hinweis, hoffe, sie schmeißen PASSWORD nicht zu schnell raus, sonst muss ich umarbeiten
-
ich versuchs ja mit crypt, aber das haut nicht hin:
speichern:
$query="insert forum.user(login, passwort, vorname, nachname, wohnort) values('".$login."', '".crypt($passwort)."','".$vorname."','".$nachname."','".$wohnort."')"; mysql_query($query);
wobei $passwort das zu speichernde PW ist.
und beim vergleichen dann:
$result=mysql_query("select login, freigeschaltet, passwort from user where login='$login' and passwort=".crypt($passwort));
wobei hier das $passwort das neu eingegebene ist, dasjenige welches mit dem in der datenbank verglichen werden soll...
Leider klappt das nich...
-
Vielleicht, weil bei der Abfrage die Hochkommas fehlen... weiß ich aber net genau...
MfGTobsen
Ps: Schau dir doch mal das Passwort in der Datenbank an und lass dir zum Beispiel mal das eingegebene mit crypt verschlüsselte Passwort mit echo ausgeben und vergleiche die beiden strings.
-
Die Hochkommas ham gefehlt, aber es geht trotzdem nicht
ich hab die Passwörter verglichen, das in der datenbank, mit dem das ich neu eingegeben habe und gecrypt()ed habe, sie waren verschieden, aber was ist mein fehler?
-
wenn ich jeweils das crypt() weglasse, dann funktioniert alles wunderbar. ich versteh das nich. kann das sein, dass das crypt nach zufall verschlüsselt, was aber eigentlich quatsch wäre...
-
SCHWUL:
print crypt("hans");
print "<br>";
print crypt("hans");liefert:
0Lg/.2g1.$zfetKcsg7jr239uPp/ytR1
hX..WA1.$hynnN0lCz4wiHdwABtUXZ1versteh ich nich, das verschlüsselt ja doch nach zufall, dann kann ma ja nix damit anfangen.......................
-
hmmm.... seltsam... du verschlüsselst aber net zufällig 2 mal oder so... also ich verschlüssele mit md5() auch en einseitiges Verfahren und klappt hervorragend