extends MessageDigest : MessageDigest « Security « Java Tutorial






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;
  }
}








36.27.MessageDigest
36.27.1.Message Digest Demo
36.27.2.Digest Stream
36.27.3.Make SHA Message
36.27.4.Make SHA Message with update methods
36.27.5.Masher a file
36.27.6.extends MessageDigest
36.27.7.MD5 MessageDigest
36.27.8.Digest Input
36.27.9.Create an encrypted string for password
36.27.10.Cryptography Streams: URLDigest