Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

HASHAGE SHA1 ET MD5 AVEC OU SANS SEL


Information sur la source

Catégorie :Sécurité & Cryptage Source .NET ( DotNet ) Classé sous : hash, sha, md5 Niveau : Débutant Date de création : 27/12/2004 Date de mise à jour : 29/03/2005 13:58:29 Vu / téléchargé: 12 228 / 495

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Crypter des mots de passe pour une application ou même une application réseau est un peu risqué lorsque le hashage existe. Crypter en SHA1 et MD5, c'est bien, mais c'est d'autant mieux si on peut l'améliorer d'un paramètre personnel pour chaque mot de passe à crypter.

C'est pour ça que le sel est là. Dans cet exemple, le mot de passe sera hashé suivant la concaténation du nom, du prénom et du mot de passe, mais rien n'empêcherait de prendre d'autres paramètres ou bien de générer un nombre aléatoire à retenir quelque part, enfin bref, libre cours à l'imagination de tous.
 

Source

  • L'action du click :
  • private void cmdHash_Click(object sender, System.EventArgs e)
  • {
  • txtHashed.Text = HashString(txtOriginal.Text);
  • String strsalt = txtOriginal.Text+this.tbNom.Text+this.tbPrenom.Text;
  • txtHashedSel.Text = HashString(strsalt);
  • }
  • La fonction de hash de la chaîne de caractères :
  • private string HashString(string Value)
  • {
  • mhash = SetHash();
  • // Convertit la chaîne originale en un tableau de Bytes
  • byte[] bytValue = System.Text.Encoding.UTF8.GetBytes(Value);
  • // Procède au hashage et retourne un tableau de Bytes
  • byte[] bytHash = mhash.ComputeHash(bytValue);
  • mhash.Clear();
  • // Retourne une chaîne de caractères en base 64 de la valeur hashée
  • return Convert.ToBase64String(bytHash);
  • }
  • en fonction du choix de l'algo de cryptage
  • private HashAlgorithm SetHash()
  • {
  • if(this.rbSHA1.Checked)
  • return new SHA1CryptoServiceProvider();
  • else
  • return new MD5CryptoServiceProvider();
  • }
  • Et c'est tout...
L'action du click : 
		private void cmdHash_Click(object sender, System.EventArgs e)
		{
			txtHashed.Text = HashString(txtOriginal.Text);
			String strsalt = txtOriginal.Text+this.tbNom.Text+this.tbPrenom.Text;
			txtHashedSel.Text = HashString(strsalt);
		}

La fonction de hash de la chaîne de caractères : 
		private string HashString(string Value)
		{
			mhash = SetHash();

			// Convertit la chaîne originale en un tableau de Bytes
			byte[] bytValue = System.Text.Encoding.UTF8.GetBytes(Value);

			// Procède au hashage et retourne un tableau de Bytes
			byte[] bytHash = mhash.ComputeHash(bytValue);

			mhash.Clear();

			// Retourne une chaîne de caractères en base 64 de la valeur hashée
			return Convert.ToBase64String(bytHash);
		}

en fonction du choix de l'algo de cryptage
		private HashAlgorithm SetHash()
		{
			if(this.rbSHA1.Checked)
				return new SHA1CryptoServiceProvider();
			else
				return new MD5CryptoServiceProvider();
		}

Et c'est tout... 

Conclusion

Pour ceux qui veulent des renseignements, n'hésitez pas à me contacter. Vous pouvez aussi visiter le site que nous avons réalisé entré étudiants pour l'entre-aide sur l'étude, ayant (pour en être l'initiateur) le même esprit que CodeS-SourceS : le partage. www.hesit.be
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

27 décembre 2004 10:45:07 :
27 décembre 2004 10:46:47 :
29 mars 2005 13:58:30 :

Commentaires et avis

signaler à un administrateur
Commentaire de pc152 le 21/11/2006 11:05:05

Bonjour

Merci pour ce code. Pour des raison de compatibilité j'ai du modifier pour avoir le meme résultat u'un codage en MD5 sous javascript ou php voici la modif:

// Convertit la chaîne originale en un tableau de Bytes
byte[] bytValue = Encoding.ASCII.GetBytes(Value);
// Procède au hashage et retourne un tableau de Bytes
byte[] bytHash = mhash.ComputeHash(bytValue);
mhash.Clear();

StringBuilder los = new StringBuilder();
//Par cour du tableau de byte
foreach(byte lo in bytHash)
{
//Convertir un nombre en chaine Hexadécimale en utilisant une surcharge de ToString() et le format X.
los.Append(lo.ToString("X2", null));
}
// Retourne une chaîne de caractères de la valeur hashée
return los.ToString();

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

MD5 [ par zatt ] Bonjour,j'essaie d'obtenir un hash md5 à partir de cette méthode :publicstatic<f code pour cryptage MD5 en série [ par yaca ] Bonjour,Je suis débutant essaie de comprendre ce qui se passe dans vos lignes, mais je ne sais encore écrire seul!!Je voudrais crypter MD5 en série qu [Algo] cryptage besoin d'aide [ par juju hack ] Bonsoir,J'ai besoin de passer un code en C# en code VB le voici:[code]publicstring CryptPassword(<font co Md5 [ par d0d0 ] Comment est il possible d'obtenir simplement la valeur md5 d'une chaine de caratere.MerciDorianD0D0 Algo Md5 Comment faire? [ par lanarchyste ] Bonjour je solicite votre aide afin que je puisse coder ma propre fonction de cryptage md5(). Le logiciel doit tourner sur un windows CE (compack fram MD5 Dll compatible Compact Framework 1.0 [ par lanarchyste ] Bonjours a tous je voudrai savoir si quelqu'un aurai la possibilit&#233; de cr&#233;e une dll md5() a partir d'une classe .L'une&nbsp; des exigence qu


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.