Article mis à jour le : 05-05-2022
Explications et exemples du cryptage et du salage en PHPCryptage, salage, diificile pour le débutant de bien comprendre de quoi il s'agit tant on lit tout et parfois n'importe quoi sur ces éléments. Petit mémo pour se rafraichir la mémoire...
Cette fonction est très utilisée pour le couple .htaccess - .htpsswd. Il ne s'agit d'un calcul, ce qui permet de ne pas stocker de mot de passe. Personnellement, je n'utilise jamais cette fonction en dehors du .htpsswd.
Exemple de code :
$texte = "Eric"; echo $texte."
"; $texte = crypt($texte); echo $texte;
Nous affichera:
Le hachage est l'opération qui consiste à calculer l'empreinte numérique d'un fichier. Elle crée ainsi un résultat empêchant de revenir à la source.
Il existe plusieurs fonctions pour hasher un mot de passe. La plus connue est la fonction MD5() qui permet le hash du même nom. Cependant, une faille a été découverte il y a déja fort longtemps, qui permet dans certains cas de trouver le mot de passe par correspondance, c'est à dire que deux mots de passe ont la même empreinte. Il faut donc éviter de l'utiliser.
Il vaut mieux utiliser le système SHA512 qui est une des clefs les plus sécurisées :
Exemple:
$texte = "Eric"; echo $texte."
"; $texte = hash("sha512", $texte); echo $texte;
donnera :
Eric edfd7242f73ee3112a47c44c0c12a5b42ed7253bbbf3ba4ee45b03ec6410af157d1fbaa36c58f96d7f85a58747853cc7914f31d3b08046ea8df3870df2a7497b
Enfin le salage est une technique de protection complémentaire au hashage. En effet, certains crackers utilisent des dictionnaires de correspondances pour les mots les plus courants, c'est à dire entre le mot en clair et le mort hashé. Pour se protéger, on peut utiliser le salage, qui rajoute une séquence de bit au mot de passe hashé pour le rendre unique. Une pratique intéressante et simple à mettre en oeuvre, consiste à ajouter un préfixe et un suffixe au mot de passe avant de le hasher.