2008-08-11 6 views

Répondre

21

Ce mec semble avoir votre réponse.

http://damieng.com/blog/2006/08/08/Calculating_CRC32_in_C_and_NET

Et dans le cas où le blog jamais disparaît ou casse l'url, voici le lien github:

https://github.com/damieng/DamienGKit/blob/master/CSharp/DamienG.Library/Security/Cryptography/Crc32.cs


Utilisation du Crc32 classe de l'article de blog:

Crc32 crc32 = new Crc32(); 
String hash = String.Empty; 

using (FileStream fs = File.Open("c:\\myfile.txt", FileMode.Open)) 
    foreach (byte b in crc32.ComputeHash(fs)) hash += b.ToString("x2").ToLower(); 

Console.WriteLine("CRC-32 is {0}", hash); 
+0

Bonne réponse et le code sur ce lien semble solide. Merci Pete! –

+0

Ce code est maintenant cassé il semblerait. La classe 'Crc32' n'a pas de constructeur de base que son exemple de code appelle. – im1dermike

+1

Il y a un paquet NuGet qui gérera ceci pour vous Crc32.NET de paquet d'installation. Il implémente réellement l'algorithme (et prétend être considérablement plus rapide que les autres alternatives). Vous pouvez exécuter la commande NuGet ci-dessus ou trouver la source sur GitHub à l'adresse https://github.com/force-net/Crc32.NET. Je ne suis normalement pas pour inclure les dépendances pour chaque petite chose, mais cela semble spécialisé et raisonnable. – Pete