Hashage sha1 et md5 avec ou sans sel

Description

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 / Exemple :


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

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.