Calculer le hachage MD5 à partir d'une chaîne en C#
-
Utilisation de l’algorithme
MD5
enC#
-
Utiliser la bibliothèque
System.Security.Cryptography
pour calculer le hachage MD5 à partir d’une chaîneC#
Les algorithmes de hachage
sont des algorithmes mathématiques utilisés pour mapper des données d’entrée arbitraires sur un hachage de taille fixe. Ils sont utilisés à des fins multiples, telles que le stockage de données dans des structures de données telles que cartes de hachage
, vérification de mot de passe
, digestion de message
et sécurité de la crypto-monnaie
.
Le MD5
appartient à la classe des algorithmes de hachage de digestion de message. Rivest a développé MD5
et d’autres algorithmes comme MD2
, MD4
, etc.
L’algorithme a été initialement conçu pour authentifier les signatures numériques. Mais plus tard, de nombreuses vulnérabilités ont été découvertes qui ont conduit à sa dépréciation.
Néanmoins, il est toujours utilisé pour la vérification de l’intégrité des données et constitue une base pour comprendre les algorithmes avancés. L’algorithme MD5
, comme tous les algorithmes de digestion de message, prend en entrée un message de longueur inconnue et le convertit en un hachage de taille fixe.
Une modification mineure de la chaîne d’entrée entraînera un hachage complètement différent. Cet article va apprendre à calculer le hachage MD5
en utilisant C#
.
Utilisation de l’algorithme MD5
en C#
L’algorithme MD5 comprend les quatre étapes principales suivantes :
Tout d’abord, ajoutez des bits de remplissage.
Dans cette étape, nous ajoutons des bits de remplissage afin que le nombre total de bits devienne 64
inférieur au multiple le plus proche de 512
. C’est fait pour que l’algorithme puisse traiter des données de la taille de 512
bits et à l’étape 2
, la longueur de chaîne exprimée en 64
bits est ajoutée pour obtenir un multiple pair de 512
.
Deuxièmement, ajoutez des bits de longueur.
Calculez la longueur de la chaîne en 64
bits. Ajoutez-les à la sortie formée à l’étape 1
.
Troisièmement, initialisez le tampon MD.
Nous initialisons 4
tampons de digestion de messages de 32
bits nommés A
, B
, C
et D
. Ils sont les suivants :
A = 01 23 45 67
B = 89 ab cd ef
C = fe dc ba 98
D = 76 54 32 10
Quatrièmement, le traitement de blocs individuels de 512
bits.
Les bits entiers sont décomposés en blocs de taille 512
. Chaque bloc formé est divisé en 16
sous-blocs de 32
bits. Tous les blocs 16
formés sont passés par une série d’opérations 4
avec les tampons A
, B
, C
et D
pour donner le hachage final.
Utiliser la bibliothèque System.Security.Cryptography
pour calculer le hachage MD5 à partir d’une chaîne C#
using System;
using System.Security.Cryptography;
using System.Text;
public class Test {
public static string ComputeMd5Hash(string message) {
using (MD5 md5 = MD5.Create()) {
byte[] input = Encoding.ASCII.GetBytes(message);
byte[] hash = md5.ComputeHash(input);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++) {
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
}
public static void Main() {
string message = "Welcome to DelfStack";
Console.WriteLine(ComputeMd5Hash(message));
}
}
Production:
53C62733BB54F2B720A32490E6C447FF
Dans le programme ci-dessus, nous créons un objet de la classe MD5
présent en C#
qui fournit une implémentation prête à l’emploi de l’algorithme MD5
via la méthode ComputeHash()
.
Nous convertissons notre chaîne de message en un flux d'octets
pour correspondre à la signature de la fonction de la méthode ComputeHash()
, qui renvoie ensuite le résultat sous la forme d’un flux d'octets
. Nous utilisons ensuite la classe string builder pour convertir le flux d’octets en une chaîne C#
valide.
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn