Aller au contenu
  • Veuillez ne pas poster de message pour but d'insulter, incitation à la haine, propos sexuels et tout autre qui ne respecte pas nos conditions générales !

[TUTO] Hasher les mots de passe.


R4x0r3

Messages recommandés

Bonjour à tous !

Partant d'un constat qui est un véritable problème de confidentialité sur certains CMS , j'ai jugé qu'il était pas mal de faire un petit tuto vis à vis du hashage de mot de passe en PHP.

 

Le hashage c'est quoi?

Le hashage permet de hasher et non crypter comme son nom l'indique une suite de caractère par le biais de plusieurs type de hash (md5 , SHA1 , etc.)  , afin que cette suite ne soit pas affichée en clair.

 

A quoi sert le hashage?

Tout réside dans la confidentialité , l'administrateur du site ne pourras pas voir vos mot de passe en clair via la DB (A moins que celui-ci remonte le processus de hashage , et encore...) Et pareille si un méchant pirate venait à voler la base de donnée , impossible pour lui de voir votre mot de passe.

 

 

Actuellement , un certains nombre (trop) de CMS hashe simplement une fois leurs mots de passe , mon dieux mais quelle erreur !

Car en effet il est possible de remonter un hash via un dictionnaire pour cet exemple j'ai hashé le mot "Habbo" avec du MD5 et simplement en mettant le hash dans un outil spécial il me redonne en clair. :(

Pour avoir accès à cette image, merci de vous connecter.

 

 

Comment hasher correctement?

Heureusement il existe plusieurs techniques afin de hasher de façon irréversible une chaîne de caractère 

 

Pour avoir accès à cette image, merci de vous connecter.

 

Voilà un petit script que je vais vous fournir qui permet de hasher et afficher les chaînes de caractères , sur la première ligne le mot de passe hasher en MD5 , sur la seconde la même chaîne mais avec du sel en plus (Je vous expliquerais ce que c'est après , rien à voir avec la cuisine :c8y0tr65-1d9a39:) et la dernière ligne le même mot de passe hashé en MD5 SHA1 et avec d'autres petits trucs que je vais vous expliquer !

 

Explication :

Le sel permet d'ajouter une chaîne de caractère sur le mot de passe que l'on souhaite fixer par exemple avec le mot de passe "Habbo" ->VoitureHabboChampion , mon sel seras donc Voiture et Champion.

Pour avoir accès à ce lien, merci de vous connecter.

($chaine étant le mot de passe)

 

Vous pouvez également inverser , supprimer des éléments d'une chaînes de caractères :

Pour avoir accès à cette image, merci de vous connecter.

 

Pour vous expliquer rapidement le script , on déclare une fonction (Chiffre_soft) qui récupère la variable $chaine , ensuite on prend la chaine où on ajoute du sel , puis un inverse le sens de la chaîne , puis on hash en MD5 , et on rajoute du sel et on supprime la 16ème lettre du $resultat et le tout qui est re-hashé en SHA1 pour ensuite être retourné :c8y0tr65-1d9a39:.

 

Et avec une fonction comme ça , déjà c'est vraiment compliqué voir impossible pour un pirate de l'obtenir en clair , et après si vous êtes vraiment vicieux comme moi >:) vous pouvez faire cela :

Pour avoir accès à cette image, merci de vous connecter.

 

Maintenant à vous de créer votre propre hashage et l'utiliser dans vos formulaire d'inscription !

Je vous joint donc les deux fichiers afin que vous puissiez voir ça de votre côté :) !

 

Si vous avez des questions n'hésitez pas !

 

function_crypt.php

test.php

 

 

 

 

 

 

  • J'aime 1
Lien à poster
Partager sur d’autres sites

il y a 2 minutes, achrafmaziz a dit :

On peut faire un truc du genre,
"notre texte est hasher en md5 > puis en sha > puis en md5", déjà c'est quand même dur à trouver.

 


function Hash($texte){
   return md5(sha(md5($texte)));
}

 

Sinon, merci à toi @R4x0r3

 

C'est facilement décryptable aussi si quelqu'un arrive à deviner ta méthode de hashage

Pour ma part j'utilise une technique de vicieux un peu dans le même genre que @R4x0r3 sauf qu'elle génère plusieurs rand de chiffres, lettres et symboles dans la chaîne de base en plus des autres méthodes de hashage basique déjà présentes, après ça fait mec un peu parano mais c'est absolument inviolable

2bNP.png&key=db98c2451c5d47b3c9fdc4ce7e9

Lien à poster
Partager sur d’autres sites

il y a 17 minutes, Don Salamanca a dit :

 

C'est facilement décryptable aussi si quelqu'un arrive à deviner ta méthode de hashage

Pour ma part j'utilise une technique de vicieux un peu dans le même genre que @R4x0r3 sauf qu'elle génère plusieurs rand de chiffres, lettres et symboles dans la chaîne de base en plus des autres méthodes de hashage basique déjà présentes, après ça fait mec un peu parano mais c'est absolument inviolable

Oué mais quand même, c'est un peu + difficile que celle d'avant,

 

Pour avoir accès à ce lien, merci de vous connecter.

Pour avoir accès à ce lien, merci de vous connecter.

Pour avoir accès à ce lien, merci de vous connecter.

Lien à poster
Partager sur d’autres sites

il y a 20 minutes, Kurumi Tokisaki a dit :

public function newHash($password = NULL)
	{
		$hash = NULL;
		for($i=0;$i <= strlen($password);$i++)
			$hash = SHA1(HASH('SHA256',$password.$hash));
		return $hash;
	}

avec ceci, il est clairement impossible de réussir a trouver le mot de passe

Effectivement là c'est plutôt hasher proprement aha , si tu peux expliquer ton script pour les débutants , ça serait cool ! :)

 

 

 

 

 

Lien à poster
Partager sur d’autres sites

  • 11 mois plus tard...
  • Administrateur
    Salut R4x0r3 ,
    Ton sujet a été déplacé pour une des deux raisons suivantes :

    - Ta demande a été résolue.

    - Ton sujet se trouvait dans la mauvaise catégorie.

        
      Ceci est un message automatique.

⠀⠀Founder of Inshare.fr

⠀⠀Baylife moderator

⠀⠀Twitch channel moderator

⠀⠀French translator Trucksbook.eu

𝐹𝑒𝑒𝑙 𝑓𝑟𝑒𝑒 𝑡𝑜 𝑤𝑟𝑖𝑡𝑒 𝑎 𝑐𝑜𝑚𝑚𝑒𝑛𝑡

—————————————————

╱⠀⠀⠀⠀⠀⠀⠀⠀⠀Règlements⠀⠀ //⠀⠀Abonnements⠀⠀ //⠀⠀ Discord   ⠀⠀⠀⠀⠀⠀⠀⠀⠀╲

 

signature.png

Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...