mai
2008
Un « Hash », ou une “fonction de hachage »,permet de générer une empreinte correspondant à une donnée. Les hash sont très utilisés notamment dans le domaine de la sécurité, par exemple pour stocker des mots de passe. Voici un exemple concret : un forum qui doit stocker dans une base de données les codes d’accès de ses utilisateurs va stocker le login et un hash du mot de passe au lieu de stocker le mot de passe lui-même. La conséquence directe est que si un utilisateur malveillant récupère ce hash il lui sera impossible de retrouver le mot de passe correspondant, par contre il sera toujours possible au forum de vérifier le mot de passe en hachant le mot de passe entré par l’utilisateur se connectant au forum, après il ne restera plus qu’à comparer les deux hash, s’ils sont identiques alors l’utilisateur à rentré le bon mot de passe. Le hash peut être considéré comme un cryptage irréversible. A partir de l’empreinte (le hash) il est impossible de retrouver la donnée initiale. Venons en au but de billet, voici comment générer un hash MD5 d’une chaine de caractères avec C# :
{
MessageBox.Show(HashWithMD5("Welcome on my Blog !!!"));
}
public string HashWithMD5(string stringToHash)
{
MD5 md5HashAlgo = MD5.Create();
// Place le texte à hacher dans un tableau d'octets
byte[] byteArrayToHash = Encoding.UTF8.GetBytes(stringToHash);
// Hash le texte et place le résulat dans un tableau d'octets
byte[] hashResult = md5HashAlgo.ComputeHash(byteArrayToHash);
StringBuilder result = new StringBuilder();
for (int i = 0; i < hashResult.Length; i++)
{
// Affiche le Hash en hexadecimal
result.Append(hashResult[i].ToString("X2"));
}
return result.ToString();
}
Vous voyez c’est vraiment très simple, le Framework .Net intégre tout le nécessaire pour calculer des hashs MD5 facilement, précisons qu’il est également possible d’utiliser d’autres algortihmes de hachage comme SHA1, SHA 256, SHA 384, SHA 512, MD 160. Dernier détail, n’oubliez pas les « using » suivants en entête de votre fichier de code :
using System.Security.Cryptography;
Commentaires récents
- Microsoft.com migre 79 serveurs vers Windows Server 2008 Beta 3 dans
- L’ouverture est décidément très à la mode… au tour de Microsoft dans
- Microsoft Most Valuable Professional (MVP) en 2008… dans
- Article : Design pattern Singleton avec .Net (VB.Net et C#) dans
- Article : Design pattern Singleton avec .Net (VB.Net et C#) dans