delphi 文件CRC32校验

 unit   Crc32;  
   
  interface  
   
  uses   Windows;  
   
      const  
      Table:   array[0..255]   of   DWORD   =  
          ($00000000,   $77073096,   $EE0E612C,   $990951BA,  
          $076DC419,   $706AF48F,   $E963A535,   $9E6495A3,  
          $0EDB8832,   $79DCB8A4,   $E0D5E91E,   $97D2D988,  
          $09B64C2B,   $7EB17CBD,   $E7B82D07,   $90BF1D91,  
          $1DB71064,   $6AB020F2,   $F3B97148,   $84BE41DE,  
          $1ADAD47D,   $6DDDE4EB,   $F4D4B551,   $83D385C7,  
          $136C9856,   $646BA8C0,   $FD62F97A,   $8A65C9EC,  
          $14015C4F,   $63066CD9,   $FA0F3D63,   $8D080DF5,  
          $3B6E20C8,   $4C69105E,   $D56041E4,   $A2677172,  
          $3C03E4D1,   $4B04D447,   $D20D85FD,   $A50AB56B,  
          $35B5A8FA,   $42B2986C,   $DBBBC9D6,   $ACBCF940,  
          $32D86CE3,   $45DF5C75,   $DCD60DCF,   $ABD13D59,  
          $26D930AC,   $51DE003A,   $C8D75180,   $BFD06116,  
          $21B4F4B5,   $56B3C423,   $CFBA9599,   $B8BDA50F,  
          $2802B89E,   $5F058808,   $C60CD9B2,   $B10BE924,  
          $2F6F7C87,   $58684C11,   $C1611DAB,   $B6662D3D,  
          $76DC4190,   $01DB7106,   $98D220BC,   $EFD5102A,  
          $71B18589,   $06B6B51F,   $9FBFE4A5,   $E8B8D433,  
          $7807C9A2,   $0F00F934,   $9609A88E,   $E10E9818,  
          $7F6A0DBB,   $086D3D2D,   $91646C97,   $E6635C01,  
          $6B6B51F4,   $1C6C6162,   $856530D8,   $F262004E,  
          $6C0695ED,   $1B01A57B,   $8208F4C1,   $F50FC457,  
          $65B0D9C6,   $12B7E950,   $8BBEB8EA,   $FCB9887C,  
          $62DD1DDF,   $15DA2D49,   $8CD37CF3,   $FBD44C65,  
          $4DB26158,   $3AB551CE,   $A3BC0074,   $D4BB30E2,  
          $4ADFA541,   $3DD895D7,   $A4D1C46D,   $D3D6F4FB,  
          $4369E96A,   $346ED9FC,   $AD678846,   $DA60B8D0,  
          $44042D73,   $33031DE5,   $AA0A4C5F,   $DD0D7CC9,  
          $5005713C,   $270241AA,   $BE0B1010,   $C90C2086,  
          $5768B525,   $206F85B3,   $B966D409,   $CE61E49F,  
          $5EDEF90E,   $29D9C998,   $B0D09822,   $C7D7A8B4,  
          $59B33D17,   $2EB40D81,   $B7BD5C3B,   $C0BA6CAD,  
          $EDB88320,   $9ABFB3B6,   $03B6E20C,   $74B1D29A,  
          $EAD54739,   $9DD277AF,   $04DB2615,   $73DC1683,  
          $E3630B12,   $94643B84,   $0D6D6A3E,   $7A6A5AA8,  
          $E40ECF0B,   $9309FF9D,   $0A00AE27,   $7D079EB1,  
          $F00F9344,   $8708A3D2,   $1E01F268,   $6906C2FE,  
          $F762575D,   $806567CB,   $196C3671,   $6E6B06E7,  
          $FED41B76,   $89D32BE0,   $10DA7A5A,   $67DD4ACC,  
          $F9B9DF6F,   $8EBEEFF9,   $17B7BE43,   $60B08ED5,  
          $D6D6A3E8,   $A1D1937E,   $38D8C2C4,   $4FDFF252,  
          $D1BB67F1,   $A6BC5767,   $3FB506DD,   $48B2364B,  
          $D80D2BDA,   $AF0A1B4C,   $36034AF6,   $41047A60,  
          $DF60EFC3,   $A867DF55,   $316E8EEF,   $4669BE79,  
          $CB61B38C,   $BC66831A,   $256FD2A0,   $5268E236,  
          $CC0C7795,   $BB0B4703,   $220216B9,   $5505262F,  
          $C5BA3BBE,   $B2BD0B28,   $2BB45A92,   $5CB36A04,  
          $C2D7FFA7,   $B5D0CF31,   $2CD99E8B,   $5BDEAE1D,  
          $9B64C2B0,   $EC63F226,   $756AA39C,   $026D930A,  
          $9C0906A9,   $EB0E363F,   $72076785,   $05005713,  
          $95BF4A82,   $E2B87A14,   $7BB12BAE,   $0CB61B38,  
          $92D28E9B,   $E5D5BE0D,   $7CDCEFB7,   $0BDBDF21,  
          $86D3D2D4,   $F1D4E242,   $68DDB3F8,   $1FDA836E,  
          $81BE16CD,   $F6B9265B,   $6FB077E1,   $18B74777,  
          $88085AE6,   $FF0F6A70,   $66063BCA,   $11010B5C,  
          $8F659EFF,   $F862AE69,   $616BFFD3,   $166CCF45,  
          $A00AE278,   $D70DD2EE,   $4E048354,   $3903B3C2,  
          $A7672661,   $D06016F7,   $4969474D,   $3E6E77DB,  
          $AED16A4A,   $D9D65ADC,   $40DF0B66,   $37D83BF0,  
          $A9BCAE53,   $DEBB9EC5,   $47B2CF7F,   $30B5FFE9,  
          $BDBDF21C,   $CABAC28A,   $53B39330,   $24B4A3A6,  
          $BAD03605,   $CDD70693,   $54DE5729,   $23D967BF,  
          $B3667A2E,   $C4614AB8,   $5D681B02,   $2A6F2B94,  
          $B40BBE37,   $C30C8EA1,   $5A05DF1B,   $2D02EF8D);  
   
  procedure   CalcCRC32(FileName:   string;   var   CRC32:   DWORD);  
           
  implementation  
   
  procedure   CalcCRC32(FileName:   string;   var   CRC32:   DWORD);  
  var  
      F:   file;  
      BytesRead:   DWORD;  
      Buffer:   array[1..65521]   of   Byte;  
      i:   Word;  
  begin  
      FileMode   :=   0;  
      CRC32         :=   $ffffffff;  
      {$I-}  
      AssignFile(F,   FileName);  
      Reset(F,   1);  
      if   IOResult   =   0   then  
      begin  
          repeat  
   
              BlockRead(F,   Buffer,   SizeOf(Buffer),   BytesRead);  
              for   i   :=   1   to   BytesRead   do  
                  CRC32   :=   (CRC32   shr   8)   xor   Table[Buffer[i]   xor   (CRC32   and   $000000FF)];  
          until   BytesRead   =   0;  
      end;  
      CloseFile(F);  
      {$I+}  
      CRC32   :=   not   CRC32;  
  end;  
   
  end.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值