PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : crypt()


Doc_Dan
21.04.2002, 06:36:58
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*

|Coding
21.04.2002, 15:42:04
Hi Doc_Dan,

zum verschlüsseln 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 :)

ingo
21.04.2002, 16:28:09
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

|Coding
21.04.2002, 16:46:50
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?

Doc_Dan
21.04.2002, 17:49:59
DANKE

werde das jetzt ausprobieren

Mfg Doc_Dan

Doc_Dan
21.04.2002, 18:21:14
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

|Coding
21.04.2002, 19:31:51
jo aber wie wird das entschlüsselt? da muss es doch dann auch ne möglichkeit geben...

Nev
22.04.2002, 15:29:00
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

Progman
23.04.2002, 01:05:32
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