Mega Code Archive

 
Categories / Java / Security
 

CRC from 7 zip

// SevenZip/CRC.java //package SevenZip; public class CRC {   static public int[] Table = new int[256];      static   {     for (int i = 0; i < 256; i++)     {       int r = i;       for (int j = 0; j < 8; j++)         if ((r & 1) != 0)           r = (r >>> 1) ^ 0xEDB88320;         else           r >>>= 1;       Table[i] = r;     }   }      int _value = -1;      public void Init()   {     _value = -1;   }      public void Update(byte[] data, int offset, int size)   {     for (int i = 0; i < size; i++)       _value = Table[(_value ^ data[offset + i]) & 0xFF] ^ (_value >>> 8);   }      public void Update(byte[] data)   {     int size = data.length;     for (int i = 0; i < size; i++)       _value = Table[(_value ^ data[i]) & 0xFF] ^ (_value >>> 8);   }      public void UpdateByte(int b)   {     _value = Table[(_value ^ b) & 0xFF] ^ (_value >>> 8);   }      public int GetDigest()   {     return _value ^ (-1);   } }