Sonderzeichen beim Befehl crypt()

g-zus

Erfahrenes Mitglied
Hi Leute,

so, hab mal wieder ein kleines Problem.
Diesesmal in PHP.

Ich brauche gerade ür ein Projekt von mir den crypt()-Befehel.

Ich verwende ihn wie folgt:

PHP:
<?php
$tocrypt = "testpasswort";
$crypted = crypt($tocrypt, CRYPT_MD5);

echo "Zu Verschlüsseln: $tocrypt <br>";
echo "Verschlüsselt: $crypted";

?>

Nun verschlüsselt das Script das Wort "testpasswort" zu dem Wort "1$BOIB/fSR5IM".
Wie man genau sehen kann ist hier ein $-Zeichen/Dollarzeichen enthalten. Das steht ja normalerweise für eine neue Variable.
Wenn nun dieses Dollarzeichen IN einer variable gespeichert ist, kommt es dann zu konflikten mit der Variablen, also dass alles was NACH dem Zeichen steht als eigener Variablenname erkannt wird, oder erkennt PHP automatisch den Unterschied?

Wenn es zu Problemen kommt, wie kann ich diese umgehen?
Muss ich die zeichen "entwerten", also mit Backslash?
So ungefähr:

1$BOIB/fSR5IM ---("entwerten")------> 1\$BOIB/fSR5IM
 
wieso nimmst du nicht einfach nur md5() is doch erstens kürzer und 2. hats keine sonderzeichen, ansonsten add_slashes()
 
Ich habe das auch mal gehabt und ausprobiert, also ich hatte bisher noch keine Probleme damit, wenn du die Passwörter aus einer Datenbank ausließt werden die als Zeichenkette in die Variable geschrieben, somit ist das $ entwertet.
Ich weis nicht wie es ist wenn du das $ Zeichen am Amfang stehen hast, ist gibt auch einige Verschlüsselungsarten da werden Zeichenfolgen von $ wie $5$ als Art der Verschlüsselung genommen, da werden die auch nicht als Variable anerkannt.
 
also zuerst mal THX für die Antworten.

Ob ich jetzt md5() oder crypt(, CRYPT_MD5) nehme is eigentlich egal.
die paar zeichen mehr tun auch nicht weh.

mir ist jedoch aufgefallen, dass ich depp auch einfach ausprobieren hätte können, ob es zu schwierigkeiten kommt oder nicht! :)
naja, trotzdem danke! lol
 
Zurück