Using System;
Using System.Collections.Generic;
Using System.Linq;
Using System.Text;
Using System.Threading.Tasks;
Using System.IO;
Namespace Callcrc32dll
{
public class FileToCRC32
{
private static uint32[] Crc32table = {
0X00000000,0X77073096,0XEE0E612C,0X990951BA,
0X076DC419,0X706AF48F,0XE963A535,0X9E6495A3,
0x0edb8832,0x79dcb8a4,0xe0d5e91e,0x97d2d988,
0x09b64c2b,0x7eb17cbd,0xe7b82d07,0x90bf1d91,
0x1db71064,0x6ab020f2,0xf3b97148,0x84be41de,
0X1ADAD47D,0X6DDDE4EB,0XF4D4B551,0X83D385C7,
0X136C9856,0X646BA8C0,0XFD62F97A,0X8A65C9EC,
0X14015C4F,0X63066CD9,0XFA0F3D63,0X8D080DF5,
0x3b6e20c8,0x4c69105e,0xd56041e4,0xa2677172,
0X3C03E4D1,0X4B04D447,0XD20D85FD,0XA50AB56B,
0x35b5a8fa,0x42b2986c,0xdbbbc9d6,0xacbcf940,
0X32D86CE3,0X45DF5C75,0XDCD60DCF,0XABD13D59,
0x26d930ac,0x51de003a,0xc8d75180,0xbfd06116,
0X21B4F4B5,0X56B3C423,0XCFBA9599,0XB8BDA50F,
0x2802b89e,0x5f058808,0xc60cd9b2,0xb10be924,
0X2F6F7C87,0X58684C11,0XC1611DAB,0XB6662D3D,
0X76DC4190,0X01DB7106,0X98D220BC,0XEFD5102A,
0x71b18589,0x06b6b51f,0x9fbfe4a5,0xe8b8d433,
0x7807c9a2,0x0f00f934,0x9609a88e,0xe10e9818,
0X7F6A0DBB,0X086D3D2D,0X91646C97,0XE6635C01,
0X6B6B51F4,0X1C6C6162,0X856530D8,0XF262004E,
0x6c0695ed,0x1b01a57b,0x8208f4c1,0xf50fc457,
0x65b0d9c6,0x12b7e950,0x8bbeb8ea,0xfcb9887c,
0x62dd1ddf,0x15da2d49,0x8cd37cf3,0xfbd44c65,
0x4db26158,0x3ab551ce,0xa3bc0074,0xd4bb30e2,
0X4ADFA541,0X3DD895D7,0XA4D1C46D,0XD3D6F4FB,
0X4369E96A,0X346ED9FC,0XAD678846,0XDA60B8D0,
0X44042D73,0X33031DE5,0XAA0A4C5F,0XDD0D7CC9,
0x5005713c,0x270241aa,0xbe0b1010,0xc90c2086,
0x5768b525,0x206f85b3,0xb966d409,0xce61e49f,
0X5EDEF90E,0X29D9C998,0XB0D09822,0XC7D7A8B4,
0x59b33d17,0x2eb40d81,0xb7bd5c3b,0xc0ba6cad,
0xedb88320,0x9abfb3b6,0x03b6e20c,0x74b1d29a,
0xead54739,0x9dd277af,0x04db2615,0x73dc1683,
0xe3630b12,0x94643b84,0x0d6d6a3e,0x7a6a5aa8,
0xe40ecf0b,0x9309ff9d,0x0a00ae27,0x7d079eb1,
0xf00f9344,0x8708a3d2,0x1e01f268,0x6906c2fe,
0xf762575d,0x806567cb,0x196c3671,0x6e6b06e7,
0XFED41B76,0X89D32BE0,0X10DA7A5A,0X67DD4ACC,
0xf9b9df6f,0x8ebeeff9,0x17b7be43,0x60b08ed5,
0xd6d6a3e8,0xa1d1937e,0x38d8c2c4,0x4fdff252,
0XD1BB67F1,0XA6BC5767,0X3FB506DD,0X48B2364B,
0xd80d2bda,0xaf0a1b4c,0x36034af6,0x41047a60,
0xdf60efc3,0xa867df55,0x316e8eef,0x4669be79,
0xcb61b38c,0xbc66831a,0x256fd2a0,0x5268e236,
0XCC0C7795,0XBB0B4703,0X220216B9,0X5505262F,
0XC5BA3BBE,0XB2BD0B28,0X2BB45A92,0X5CB36A04,
0XC2D7FFA7,0XB5D0CF31,0X2CD99E8B,0X5BDEAE1D,
0X9B64C2B0,0XEC63F226,0X756AA39C,0X026D930A,
0x9c0906a9,0xeb0e363f,0x72076785,0x05005713,
0x95bf4a82,0xe2b87a14,0x7bb12bae,0x0cb61b38,
0X92D28E9B,0XE5D5BE0D,0X7CDCEFB7,0X0BDBDF21,
0X86D3D2D4,0XF1D4E242,0X68DDB3F8,0X1FDA836E,
0x81be16cd,0xf6b9265b,0x6fb077e1,0x18b74777,
0X88085AE6,0XFF0F6A70,0X66063BCA,0X11010B5C,
0x8f659eff,0xf862ae69,0x616bffd3,0x166ccf45,
0XA00AE278,0XD70DD2EE,0X4E048354,0X3903B3C2,
0XA7672661,0XD06016F7,0X4969474D,0X3E6E77DB,
0XAED16A4A,0XD9D65ADC,0X40DF0B66,0X37D83BF0,
0xa9bcae53,0xdebb9ec5,0x47b2cf7f,0x30b5ffe9,
0XBDBDF21C,0XCABAC28A,0X53B39330,0X24B4A3A6,
0XBAD03605,0XCDD70693,0X54DE5729,0X23D967BF,
0xb3667a2e,0xc4614ab8,0x5d681b02,0x2a6f2b94,
0XB40BBE37,0XC30C8EA1,0X5A05DF1B,0X2D02EF8D};
<summary>
Gets the CRC32 identity of the file
</summary>
<param name= "FilePath" ></param>
<returns></returns>
public static string GetFileCRC32 (String filePath)
{
Const string FOO = "-";
if (string. IsNullOrEmpty (FilePath))
{
return FOO;
}
if (! File.exists (FilePath))
{
return FOO;
}
50M Max
const int max_size = 50 * 1024 * 1024;
var f = new FileInfo (FilePath);
if (f.length >= max_size)
{
return FOO;
}
UInt32 CRC = 0xFFFFFFFF;
var bin = file.readallbytes (FilePath);
foreach (Byte b in bin)
{
CRC = ((CRC >> 8) & 0x00ffffff) ^ crc32table[(crc ^ B) & 0xFF];
}
CRC = CRC ^ 0xFFFFFFFF;
Return CRC. ToString ("X");
}
}
}
Using System;
Using System.Collections.Generic;
Using System.Linq;
Using System.Text;
Using System.Threading.Tasks;
Using System.Runtime.InteropServices;
Namespace Callcrc32dll
{
Class Program
{
static void Main (string[] args)
{
String F32=filetocrc32.getfilecrc32 ("20160111.bin");
System.Console.WriteLine (F32);
}
}
}
C # CRC32