Zum Inhalt springen

crypt()

Die Funktion crypt() wird verwendet, um einen String einseitig zu hashen. Die Syntax der Funktion crypt() lautet wie folgt:

Die PHP-Syntax von crypt()

php
string crypt ( string $str [, string $salt ] )

Die Funktion erwartet zwei Parameter: den zu hashenden String ($str) und einen optionalen Salt-Parameter ($salt). Der Salt-Parameter bestimmt den Hashing-Algorithmus und die Optionen. In modernem PHP sollte der Salt einem bestimmten Format folgen (z. B. $2y$, $6$), um den Algorithmus auszuwählen, anstatt einen einfachen String zu verwenden.

Hier ist ein Beispiel zur Verwendung der Funktion crypt():

Beispiel für PHP crypt()

php
<?php
$str = "password123";
$salt = "abcd";
$encrypted_str = crypt($str, $salt);
echo $encrypted_str;
?>

In diesem Beispiel haben wir einen String, den wir mit der Funktion crypt() hashen möchten. Wir übergeben den String und einen Salt-Wert an die Funktion crypt(), die den gehashten String zurückgibt.

Die Ausgabe dieses Codes hängt vom verwendeten Salt und Algorithmus ab:


console
abIZtMrubNtSE

Wie Sie sehen können, hat die Funktion crypt() den gehashten String zurückgegeben.

Hier ist ein weiteres Beispiel zur Verwendung der Funktion crypt() zur Überprüfung eines Passworts:

So verwenden Sie PHP crypt()?

php
<?php
$password = "password123";
$hashed_password = crypt($password, "abcd");
if (crypt($password, $hashed_password) == $hashed_password) {
    echo "Password is valid!";
} else {
    echo "Invalid password.";
}
?>

In diesem Beispiel überprüfen wir ein Passwort, indem wir es mit dem zuvor generierten Hash erneut hashen. Beachten Sie, dass crypt() den Salt automatisch aus dem gespeicherten Hash extrahiert, wenn das zweite Argument ein gültiger Hash-String ist, wodurch sichergestellt wird, dass derselbe Algorithmus und dieselben Parameter zum Vergleich verwendet werden. Wenn die beiden Ergebnisse übereinstimmen, ist das Passwort gültig.

Die Funktion crypt() ist ein Legacy-Tool zum einseitigen Hashen sensibler Daten wie Passwörter. Für moderne PHP-Anwendungen wird dringend empfohlen, stattdessen password_hash() und password_verify() zu verwenden, da diese die sichere Salt-Generierung und Algorithmusauswahl automatisch übernehmen. Die Verwendung kurzer oder einfacher Salts mit crypt() in modernem PHP kann zu schwachem Hashing führen.

Wir hoffen, dass dieser Artikel beim Verständnis der Funktion crypt() in PHP geholfen hat. Wenn Sie Fragen oder Anmerkungen haben, kontaktieren Sie uns gerne.

Praxis

Welche Hauptverwendung hat die crypt()-Funktion in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.