crypt()
La fonction crypt() est utilisée pour hacher de manière irréversible une chaîne de caractères. La syntaxe de la fonction crypt() est la suivante :
La syntaxe PHP de crypt()
string crypt ( string $str [, string $salt ] )La fonction prend deux paramètres : la chaîne à hacher ($str) et un paramètre de sel ($salt) optionnel. Le paramètre de sel détermine l'algorithme de hachage et les options. Dans les versions modernes de PHP, le sel doit suivre un format spécifique (par exemple, $2y$, $6$) pour sélectionner l'algorithme, plutôt que d'utiliser une simple chaîne de caractères.
Voici un exemple d'utilisation de la fonction crypt() :
Exemple de crypt() en PHP
<?php
$str = "password123";
$salt = "abcd";
$encrypted_str = crypt($str, $salt);
echo $encrypted_str;
?>Dans cet exemple, nous disposons d'une chaîne que nous souhaitons hacher à l'aide de la fonction crypt(). Nous passons la chaîne et une valeur de sel à la fonction crypt(), qui retourne la chaîne hachée.
La sortie de ce code variera en fonction du sel et de l'algorithme utilisés :
abIZtMrubNtSEComme vous pouvez le voir, la fonction crypt() a retourné la chaîne hachée.
Voici un autre exemple d'utilisation de la fonction crypt() pour vérifier un mot de passe :
Comment utiliser crypt() en PHP ?
<?php
$password = "password123";
$hashed_password = crypt($password, "abcd");
if (crypt($password, $hashed_password) == $hashed_password) {
echo "Password is valid!";
} else {
echo "Invalid password.";
}
?>Dans cet exemple, nous vérifions un mot de passe en le hachant à nouveau avec le hachage précédemment généré. Notez que crypt() extrait automatiquement le sel à partir du hachage stocké lorsque le deuxième argument est une chaîne de hachage valide, garantissant ainsi que le même algorithme et les mêmes paramètres sont utilisés pour la comparaison. Si les deux résultats correspondent, le mot de passe est valide.
La fonction crypt() est un outil hérité pour le hachage unidirectionnel de données sensibles comme les mots de passe. Pour les applications PHP modernes, il est fortement recommandé d'utiliser à la place password_hash() et password_verify(), car elles gèrent automatiquement la génération sécurisée de sel et la sélection de l'algorithme. L'utilisation de sels courts ou en clair avec crypt() dans les versions modernes de PHP peut entraîner un hachage faible.
Nous espérons que cet article vous a aidé à comprendre la fonction crypt() en PHP. Si vous avez des questions ou des commentaires, n'hésitez pas à nous contacter.
Pratique
Quelle est l'utilisation principale de la fonction crypt() en PHP ?