crypt()
Hab ein problem ich will mit der Funktion Crypt
ein passwort verschlüsseln. Es sollte ja bei mehrmaliger Eingabe eines Passwortes auch immer der gleiche ververschlüsste wert rauskommen nur passiert dies nicht. Wie kan ich den Fehler finden. HAb das schon mit dem beispiel von SelfPHP probiert: <?PHP echo crypt("PHP ¾ - Die Befehlsreferenz"); ?> Hier ein paar ergebnisse: $1$xk1Mbt.p$e0U/z8.MZ.Zz6.yWHCqB.0 $1$KZ4qnztS$untwPvFkexajK1xIkUA7G0 $1$w29001Pf$I1ON5/RRga.z3RnGRNmTs0 Das vorgegebene Ergebniss lautet: CbCJjFbkdhYeo ICh könnte jetzt ewig weitermachen aber das bringt ja nix *fg* |
Hi Doc_Dan,
zum verschlüsseln kann ich dir nur empfehlen es mal hier mit zu versuchen, base64_encode() und base64_decode(): PHP-Code:
kodiert: MTIzNDU2Nzg5MGFBYkJjQ2REZUVmRmdHaEg= dekodiert: 1234567890aAbBcCdDeEfFgGhH es bleibt immer gleich. ich denke das ist das was du suchst :) |
frage
ich hätte da mal eine frage, die mich grundsätzlich interessiert:
wieso verschlüsselt jemand einen string mit crypt() wenn er nicht wieder umkehrbar ist? was bringen einwegschlüssel? wenn mir das jemand sagen könnte, wär ich euch sehr verbunden. das interessiert mich nämlich schon länger wozu das gut sein soll/kann.. lg, ingo |
Naja so ganz ist mir das auch nicht klar, ??WARUM??, man nur verschlüsselt und es nicht wieder umkehren kann. eigendlich gehen doch dann alle verschlüsselten informationen verloren bzw. werden wertlos, oder ist das verkehrt?
|
DANKE
werde das jetzt ausprobieren Mfg Doc_Dan |
Denke das ist falsch denn sonst könntest du dich unter Unix/Linux gar nicht mehr anmelden denn das Passwort wird da so verschlüsselt. Ka wie das funktioniert
Mfg Doc_Dan |
jo aber wie wird das entschlüsselt? da muss es doch dann auch ne möglichkeit geben...
|
Hi @ll
Die Einweg-Verschlüsselung hat schon einen Sinn. Die Passwörter werden in einer Datei oder Datenbank gespeichert. Wenn dann jemand dieses Ausliest kann er nix damit anfangen, da er es nicht zurückrechnen kann. Die Überprüfung erfolgt so, das du das eingegebene Passwort wieder verschlüsselst und mit dem gespeicherten Vergleichst. Das ist der beste Schutz |
um auf das 'Problem' auf crypt(); einzugehen. crypt(); erwartet einen optionalen Parameter, ich glaube der heißt salt. Da muss man dann ein String oder sowas eingeben. Dann werden alle Strings gleich verschlüsselt. auf http://www.php.net/ sieht man wie dieser Befehl aufgebaut ist.
md5(); ist aber besser als crypt(); denn crypt(); unterscheidet nur in den ersten 8 Zeichen eines Strings. Und md5(); erzeugt einen String der immer 32 Zeichen lang ist, ideal wenn man das Password in einer Datenbank speichern möchte. Man sollte hier den Typ VARCHAR(32) oder CHAR(32) nehmen. Einer der beiden (Varchar oder Char) sind auf konstante längen optimiert. Infos auf http://www.mysql.de |
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:01:43 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.