PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   crypt() (http://www.selfphp.de/forum/showthread.php?t=1243)

Doc_Dan 21.04.2002 06:36:58

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*

|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():

PHP-Code:

$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

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

|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


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.