Vollstndige Version anzeigen : crypt()
Hab ein problem ich will mit der Funktion Crypt
ein passwort verschlsseln.
Es sollte ja bei mehrmaliger Eingabe eines Passwortes auch immer der gleiche ververschlsste 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 knnte jetzt ewig weitermachen aber das bringt ja nix *fg*
Hi Doc_Dan,
zum verschlsseln kann ich dir nur empfehlen es mal hier mit zu versuchen, base64_encode() und base64_decode():
$to_encode = "1234567890aAbBcCdDeEfFgGhH";
$encode = base64_encode($to_encode);
echo "kodiert: ".$encode."<br><br>";
$decode = base64_decode($encode);
echo "dekodiert: ".$decode;
ausgabe:
kodiert: MTIzNDU2Nzg5MGFBYkJjQ2REZUVmRmdHaEg=
dekodiert: 1234567890aAbBcCdDeEfFgGhH
es bleibt immer gleich. ich denke das ist das was du suchst :)
ich htte da mal eine frage, die mich grundstzlich interessiert:
wieso verschlsselt jemand einen string mit crypt() wenn er nicht wieder umkehrbar ist? was bringen einwegschlssel?
wenn mir das jemand sagen knnte, wr ich euch sehr verbunden. das interessiert mich nmlich schon lnger wozu das gut sein soll/kann..
lg, ingo
Naja so ganz ist mir das auch nicht klar, ??WARUM??, man nur verschlsselt und es nicht wieder umkehren kann. eigendlich gehen doch dann alle verschlsselten informationen verloren bzw. werden wertlos, oder ist das verkehrt?
DANKE
werde das jetzt ausprobieren
Mfg Doc_Dan
Denke das ist falsch denn sonst knntest du dich unter Unix/Linux gar nicht mehr anmelden denn das Passwort wird da so verschlsselt. Ka wie das funktioniert
Mfg Doc_Dan
jo aber wie wird das entschlsselt? da muss es doch dann auch ne mglichkeit geben...
Hi @ll
Die Einweg-Verschlsselung hat schon einen Sinn.
Die Passwrter werden in einer Datei oder Datenbank gespeichert.
Wenn dann jemand dieses Ausliest kann er nix damit anfangen, da er es nicht zurckrechnen kann.
Die berprfung erfolgt so, das du das eingegebene Passwort wieder verschlsselst 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 heit salt. Da muss man dann ein String oder sowas eingeben. Dann werden alle Strings gleich verschlsselt. 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 mchte. Man sollte hier den Typ VARCHAR(32) oder CHAR(32) nehmen. Einer der beiden (Varchar oder Char) sind auf konstante lngen optimiert. Infos auf http://www.mysql.de
vBulletin v3.0.7, Copyright ©2000-2006, Jelsoft Enterprises Ltd.