Calculer le hachage du contenu d’un fichier en C #?

J’ai besoin de calculer le hachage du contenu d’un fichier en C #? Je peux donc comparer deux hachages de fichiers dans mon application. J’ai cherché mais pas trouvé.

Vous pouvez utiliser MD5CryptoServiceProvider , qui fonctionnera avec les fichiers texte ainsi que les fichiers binarys.

 byte[] myFileData = File.ReadAllBytes(myFileName); byte[] myHash = MD5.Create().ComputeHash(myFileData); 

Ou … si vous travaillez avec des fichiers volumineux et que vous ne voulez pas charger le fichier entier en mémoire:

 byte[] myHash; using (var md5 = MD5.Create()) using (var stream = File.OpenRead(myFileName)) myHash = md5.ComputeHash(stream); 

Vous pouvez comparer aux tableaux d’octets de deux fichiers avec Enumerable.SequenceEqual :

 myHash1.SequenceEqual(myHash2); 

Vous pouvez également essayer de créer un calculateur CRC. Voir: http://damieng.com/blog/2006/08/08/calculating_crc32_in_c_and_net

Vous devriez chercher mieux;)

 using System.IO; using System.Text; using System.Security.Cryptography; protected ssortingng GetMD5HashFromFile(ssortingng fileName) { FileStream file = new FileStream(fileName, FileMode.Open); MD5 md5 = new MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(file); file.Close(); SsortingngBuilder sb = new SsortingngBuilder(); for (int i = 0; i < retVal.Length; i++) { sb.Append(retVal[i].ToString("x2")); } return sb.ToString(); } 

Passez votre fichier à cette fonction comme ceci.

 GetMD5HashFromFile("text1.txt"); GetMD5HashFromFile("text2.txt");