Mega Code Archive

 
Categories / Java Tutorial / Security
 

Extends MessageDigest

import java.security.MessageDigest; public class XYZMessageDigest extends MessageDigest implements Cloneable {   private int hash;   private int store;   private int nBytes;   public XYZMessageDigest() {     super("XYZ");     engineReset();   }   public void engineUpdate(byte b) {     switch (nBytes) {     case 0:       store = (b << 24) & 0xff000000;       break;     case 1:       store |= (b << 16) & 0x00ff0000;       break;     case 2:       store |= (b << 8) & 0x0000ff00;       break;     case 3:       store |= (b << 0) & 0x000000ff;       break;     }     nBytes++;     if (nBytes == 4) {       hash = hash ^ store;       nBytes = 0;       store = 0;     }   }   public void engineUpdate(byte b[], int offset, int length) {     for (int i = 0; i < length; i++)       engineUpdate(b[i + offset]);   }   public void engineReset() {     hash = 0;     store = 0;     nBytes = 0;   }   public byte[] engineDigest() {     while (nBytes != 0)       engineUpdate((byte) 0);     byte b[] = new byte[4];     b[0] = (byte) (hash >>> 24);     b[1] = (byte) (hash >>> 16);     b[2] = (byte) (hash >>> 8);     b[3] = (byte) (hash >>> 0);     engineReset();     return b;   } }