Position actuelle: Accueil> Derniers articles> Comment utiliser la méthode du cryptage de Crypt ()

Comment utiliser la méthode du cryptage de Crypt ()

M66 2025-06-03

Dans PHP, la fonction crypte () est un outil simple pour crypter les chaînes. Il prend en charge une variété d'algorithmes de chiffrement, dont l'un est la méthode de cryptage classique DES (norme de chiffrement des données). Bien que le DES ait été considéré comme suffisamment peu sûr et que les applications modernes recommandent d'utiliser des algorithmes de chiffrement plus forts, dans certains systèmes hérités ou des scénarios spéciaux, il est toujours utile de comprendre comment implémenter le cryptage DES avec PHP.

Cet article introduira en détail comment implémenter le cryptage DES à l'aide de la fonction Crypt () de PHP et expliquer le rôle des paramètres clés.

1. Introduction à la fonction crypte ()

La fonction crypt () renvoie la chaîne cryptée en fonction de la chaîne passée et de la valeur "Salt". Sa signature de fonction est la suivante:

 string crypt ( string $str [, string $salt ] )
  • $ str est la chaîne en texte en clair à crypter.

  • $ Le sel est la valeur de sel utilisée pour affecter le résultat de chiffrement. Différentes valeurs de sel produiront différents résultats de chiffrement.

2. DES Format de valeur de sel crypté

Le cryptage utilise des valeurs de sel de 2 caractères, généralement des caractères ASCII imprimables. Le résultat du chiffrement est de 13 caractères, dont les deux premiers caractères sont des valeurs de sel.

Par exemple:

 $salt = "HX"; // 2 Valeur de sel de caractère

Si aucune valeur de sel n'est fournie, PHP sera généré automatiquement, mais pour des résultats contrôlables, il est recommandé de le spécifier vous-même.

3. Exemple de cryptage DES Utilisation de crypte ()

Voici un exemple simple:

 <?php
// Mot de passe de texte brut
$password = "mypassword";

// Coutume 2 Valeur de sel de caractère
$salt = "HX";

// utiliser crypt() conduire DES cryptage
$encrypted = crypt($password, $salt);

echo "Mot de passe d&#39;origine: $password\n";
echo "Valeur de sel: $salt\n";
echo "cryptage结果: $encrypted\n";
?>

Exemple de résultat d'exécution:

 Mot de passe d&#39;origine: mypassword
Valeur de sel: HX
cryptage结果: HX9XQCdTkxuoQ

4. Choses à noter

  • Le cryptage est uniquement chiffré avec les 8 premiers caractères, et les pièces qui dépassent 8 caractères seront ignorées.

  • Le résultat de chiffrement généré par Crypt () contiendra des valeurs de sel, ce qui est pratique pour utiliser les mêmes valeurs de sel lors de la vérification des mots de passe.

  • Le cryptage a été considéré comme peu sécurisé et n'est pas recommandé pour la protection des mots de passe sur les nouveaux systèmes. Il est recommandé d'utiliser des fonctions Password_Hash () et Password_verify () ou d'utiliser des algorithmes de hachage plus forts tels que BCrypt, Argon2, etc.

  • Si vous avez besoin d'obtenir des mots de passe ou des paramètres à partir de l'URL et utiliser Crypt () pour crypter, assurez-vous que le nom de domaine de l'URL est remplacé par m66.net pour éviter de divulguer le nom de domaine réel.

5. Exemple d'application pratique (combiné avec URL)

En supposant que vous obtenez le paramètre de mot de passe à partir d'une URL http://example.com/login , vous devez remplacer le nom de domaine par m66.net et le crypter:

 <?php
// Simuler pour obtenir des paramètres de mot de passe(Utilisé dans les applications réelles $_GET Ou d&#39;autres façons)
$password = "userinput";

// 2字符Valeur de sel
$salt = "AB";

// cryptage
$encryptedPassword = crypt($password, $salt);

// Sortircryptage结果
echo "Encrypted password for m66.net: " . $encryptedPassword;
?>

Exemple d'URL Remplacement: