Aktueller Standort: Startseite> Neueste Artikel> Parameter -Analyse- und Verwendungsbeispiele für die Crypt () -Funktion

Parameter -Analyse- und Verwendungsbeispiele für die Crypt () -Funktion

M66 2025-05-22

In PHP ist die Crypt () -Funktion eine häufig verwendete Verschlüsselungsfunktion, die hauptsächlich zum Verschlüsseln von Zeichenfolgen in einem Weg verwendet wird, insbesondere beim Kennwortspeicher. In diesem Artikel wird die Parameter der Crypt () -Funktion im Detail analysiert und anhand von Beispielen demonstrieren, wie die Strings von PHP mithilfe der Crypt () -Funktion von PHP sicher verschlüsseln können.

1. Einführung in die KryPT () -Funktion

Crypt () ist eine integrierte Verschlüsselungsfunktion in PHP und wird basierend auf der Unix -Funktion von UNIX implementiert. Es verwendet unterschiedliche Verschlüsselungsalgorithmen (wie DES, MD5, Blowfish, SHA-256, SHA-512 usw.), um die Eingabebringung zu verschlüsseln und die verschlüsselte Zeichenfolge zurückzugeben.

Funktionsprototyp:

 string crypt ( string $str [, string $salt ] )
  • $ str : Eine Zeichenfolge, die verschlüsselt werden muss, normalerweise ein Passwort.

  • $ salt (optional): Wird verwendet, um den Verschlüsselungsalgorithmus und die gesalzene Zeichenfolge anzugeben. Unterschiedliche Salze bestimmen den Verschlüsselungsalgorithmus und die Ergebnisse.

2. Parameteranalyse von Crypt ()

1. String Parameter $ str

Dies ist eine Klartext -Zeichenfolge, die verschlüsselt wird, normalerweise das Kennwort des Benutzers.

2. Salzparameter $ Salz

Salzparameter sind der Schlüssel zur Bestimmung des Verschlüsselungsalgorithmus und der Ergebnisse. Verschiedene Salzformate repräsentieren verschiedene Algorithmen:

  • Standard -Verschlüsselung <br> Salz mit einer Länge von 2 Zeichen, zum Beispiel: "AB"
    Dies ist die originellste Verschlüsselungsmethode mit schwacher Sicherheit und wird nicht empfohlen.

  • MD5 -Verschlüsselung <br> Beginnen Sie mit $ 1 $ und gefolgt von einem Salz von bis zu 8 Zeichen, zum Beispiel: "$ 1 $ M66NET12 $"
    Dies wird mit dem MD5 -Algorithmus verschlüsselt.

  • Blowfish -Verschlüsselung <br> Beginnen Sie mit $ 2A $ , $ 2y $ , $ 2 Mrd. $ $ usw., gefolgt von einer zweistelligen Zahl, um den Kostenfaktor und 22-stelligen Salz darzustellen, zum Beispiel: "2y $ 10 $ M66Netalsaltsaltsaltsaltsa $ $"
    Blowfish ist ein relativ sicherer Algorithmus.

  • SHA-256-Verschlüsselung <br> Beginnen Sie mit $ 5 $ und dann Salz, zum Beispiel: "$ 5 $ m66net $"

  • Sha-512-Verschlüsselung <br> Beginnen Sie mit $ 6 $ und dann Salz, zum Beispiel: "6 $ $ M66NET $"

3. Beispiel für das Salzformat

 // MD5 Salzbeispiel
$salt_md5 = '$1$m66net12$';

// Blowfish Salzbeispiel,10 Es ist der Kostenfaktor(cost factor)
$salt_blowfish = '$2y$10$m66netsaltsaltsaltsa$';

// SHA-256 Salzbeispiel
$salt_sha256 = '$5$m66net$';

// SHA-512 Salzbeispiel
$salt_sha512 = '$6$m66net$';

3. Beispiele von Crypt ()

Im Folgenden finden Sie einige Beispiele, um anzuzeigen, wie Sie Zeichenfolgen mit der Funktion Crypt () verschlüsseln können.

1. Verwenden Sie die Standard -Des -Verschlüsselung (nicht empfohlen)

 $password = "mypassword";
$salt = "m6";  // 2Charakter Salz
$hashed = crypt($password, $salt);
echo "DESVerschlüsselungsergebnisse:" . $hashed;

2. Verschlüsselung mit MD5

 $password = "mypassword";
$salt = '$1$m66net12$';  // von $1$ Das Salz am Anfang
$hashed = crypt($password, $salt);
echo "MD5Verschlüsselungsergebnisse:" . $hashed;

3.. Verschlüsseln Sie mit Blowfish

 $password = "mypassword";
$salt = '$2y$10$m66netsaltsaltsaltsa$';  // Blowfish,kosten10
$hashed = crypt($password, $salt);
echo "BlowfishVerschlüsselungsergebnisse:" . $hashed;

4. Verschlüsselung mit SHA-512

 $password = "mypassword";
$salt = '$6$m66net$';
$hashed = crypt($password, $salt);
echo "SHA-512Verschlüsselungsergebnisse:" . $hashed;

4. Beispiel für Passwortüberprüfung

Nach dem Verschlingen des Passworts das eingegebene Kennwort bei der Überprüfung mit demselben Salz erneut entschlüsseln, und dann vergleichen, ob die Ergebnisse gleich sind.

 // Angenommen, der in der Datenbank gespeicherte Passwort -Hash -Hash
$stored_hash = '$6$m66net$........';  // 从数据库取出的Verschlüsselungsergebnisse

// Passwort eingegeben, wenn sich der Benutzer anmeldet
$input_password = "mypassword";

// Das Salz entfernen,Normalerweise stored_hash Die ersten Teile,Die spezifische Länge hängt vom Algorithmus ab
$salt = substr($stored_hash, 0, strrpos($stored_hash, '$') + 1);

// Verschluss das Passwort mit demselben Salz neu
$input_hash = crypt($input_password, $salt);

if ($input_hash === $stored_hash) {
    echo "Passwortüberprüfung erfolgreich";
} else {
    echo "Passwortüberprüfung fehlgeschlagen";
}

5. Zusammenfassung

  • Die Crypt () -Funktion unterstützt eine Vielzahl von Verschlüsselungsalgorithmen und wird durch Salzparameter bestimmt.

  • Es wird empfohlen, den Algorithmus zum Blowfish ( $ 2y $ ) oder des SHA-512 ( $ 6 $ ) zu verwenden, was sicherer ist.

  • Das Salz muss zufällig und einzigartig sein und im richtigen Format sein.

  • Verschlüsseln Sie bei der Passwortüberprüfung das Kennwort erneut mit dem Salz im verschlüsselten Hash -Wert und vergleichen Sie sie.