Cours par Webcam

Cours par Webcam

Formateur Web pour adultes depuis plus 11 ans, je vous propose des COURS collectifs par WEBCAM en LIVE pour booster vos connaissances et être autonome dans la création de site.

En savoir plus

PHP - Bases

PHP - Algorithmie

PHP - Chaîne

PHP - Tableau

PHP - Formulaires

PHP - Fonctions Usuelles

Données entres pages

Environnement et Interaction

PHP objet (POO)

Facebook
Twitter
LinkedIn

Fonction de chiffrement en PHP

Pour sécuriser certaines données récoltées (comme les mots de passe), il faut effectuer des opérations de hachage qui consiste à crypter les informations pour les rendre illisibles et inexploitables pour les attaquants.

Hachage

La fonction md5() calcule le md5 (algorithme de hachage RSA Data Security, Inc. MD5 Message-Digest Algorithm) sous forme d’un nombre hexadécimal de 32 caractères.

$login = "toto";
echo md5($login);

Affichage

f71dbe52628a3f83a77ab494817525c6

Même si la technique du hachage par md5 est rapide et efficace, elle est déconseillée pour protéger un mot de passe utilisateur. En effet, les machines actuelles, puissantes, peuvent attaquer la sortie de l’algorithme pour retrouver la chaîne originale.

Le md5() pourra être utilisé pour crypter des noms de fichier ou des noms de répertoire.

La fonction crypt() permet de faire un hachage à sens unique, c’est à dire indéchiffrable. Cette fonction exploite la technique du grain de sel ou salt qui consiste à rajouter une petite donnée supplémentaire dans le hachage pour le rendre plus difficile à cracker. En effet, les attaquants utilisent des dictionnaires qui enregistrent et compare les hachages. Le salt élimine donc ces possibilités d’attaques.

Cette fonction prend en paramètre le terme à hacher et le salt (optionnel mais recommandé pour la protection et la vérification d’un mot de passe).

$login = "toto";
echo crypt($login,"exemple");

Affichage

exSUeeoWsOM2g

Vous remarquez que les deux premières lettres du salt (ici ‘exemple’) sont retournées au début du hachage.

Si le deuxième paramètre est omis, PHP génèrera automatiquement le salt.

$login = "toto";
echo crypt($login);

Affichage

$1$o69M0syH$SVs139okLoIIXhnwxuM.O0

Vérification d’un mot de passe

La fonction hash_equals() est utilisée pour la vérification d’un mot de passe crypté avec crypt().

// salt initialisé par php
$hachage = crypt("toto");
 
// vérification à partir d'une valeur saisie
$saisie = "toto";
if (hash_equals($hachage, crypt($saisie, $hachage))) {
   echo "Mot de passe valide !";
}

Affichage

Mot de passe valide !

A lire aussi

tutowebdesign

Afficher du contenu au scroll

Afficher du contenu au scroll Voici un effet impressionnant et pourtant très facile à mettre en place sur vos pages. Le principe consiste à faire

Lire »