Calculating CRC-64 in C# and .NET
Seeing how the CRC-32 C# class I posted some time ago continues to get lots of Google hits I thought I’d post a CRC-64 version which will no doubt be far less popular being the more limited use. Again, do not use this as a secure message signature, it’s really for backward compatibility with legacy systems.
This is the ISO-3309 version of CRC-64 algorithm. It is not compatible with the ECMA-182 algorithm.
GitHub has the latest version of Crc64.
To use this or the CRC-32 class to compute the hash for a file simply:
Crc64 crc64 = new Crc64();
String hash = String.Empty;
using (FileStream fs = File.Open("c:\\myfile.txt", FileMode.Open))
foreach (byte b in crc64.ComputeHash(fs)) hash += b.ToString("x2").ToLower();
Console.WriteLine("CRC-64 is {0}", hash);
Whilst writing this I considered if I should implement some more advanced hashing algorithms missing from .NET like RIPEMD320 only to stumble across The Legion of Bouncy Castles C# Cryptography APIs which also includes generating PKCS #12 files and a whole bunch of encryption algorithms (but nothing as weak as CRC-64 ;-)
[)amien
0 responses to Calculating CRC-64 in C# and .NET