Class MD5Digest

  • All Implemented Interfaces:
    Digest

    public class MD5Digest
    extends GeneralDigest
    implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static int DIGEST_LENGTH  
      private int H1  
      private int H2  
      private int H3  
      private int H4  
      private static int S11  
      private static int S12  
      private static int S13  
      private static int S14  
      private static int S21  
      private static int S22  
      private static int S23  
      private static int S24  
      private static int S31  
      private static int S32  
      private static int S33  
      private static int S34  
      private static int S41  
      private static int S42  
      private static int S43  
      private static int S44  
      private int[] X  
      private int xOff  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int doFinal​(byte[] out, int outOff)
      close the digest, producing the final digest value.
      private int F​(int u, int v, int w)  
      private int G​(int u, int v, int w)  
      java.lang.String getAlgorithmName()
      return the algorithm name
      int getDigestSize()
      return the size, in bytes, of the digest produced by this message digest.
      private int H​(int u, int v, int w)  
      private int K​(int u, int v, int w)  
      protected void processBlock()  
      protected void processLength​(long bitLength)  
      protected void processWord​(byte[] in, int inOff)  
      void reset()
      reset the chaining variables to the IV values.
      private int rotateLeft​(int x, int n)  
      private void unpackWord​(int word, byte[] out, int outOff)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MD5Digest

        public MD5Digest()
        Standard constructor
      • MD5Digest

        public MD5Digest​(MD5Digest t)
        Copy constructor. This will copy the state of the provided message digest.
    • Method Detail

      • getAlgorithmName

        public java.lang.String getAlgorithmName()
        Description copied from interface: Digest
        return the algorithm name
        Returns:
        the algorithm name
      • getDigestSize

        public int getDigestSize()
        Description copied from interface: Digest
        return the size, in bytes, of the digest produced by this message digest.
        Returns:
        the size, in bytes, of the digest produced by this message digest.
      • processWord

        protected void processWord​(byte[] in,
                                   int inOff)
        Specified by:
        processWord in class GeneralDigest
      • unpackWord

        private void unpackWord​(int word,
                                byte[] out,
                                int outOff)
      • doFinal

        public int doFinal​(byte[] out,
                           int outOff)
        Description copied from interface: Digest
        close the digest, producing the final digest value. The doFinal call leaves the digest reset.
        Parameters:
        out - the array the digest is to be copied into.
        outOff - the offset into the out array the digest is to start at.
      • reset

        public void reset()
        reset the chaining variables to the IV values.
        Specified by:
        reset in interface Digest
        Overrides:
        reset in class GeneralDigest
      • rotateLeft

        private int rotateLeft​(int x,
                               int n)
      • F

        private int F​(int u,
                      int v,
                      int w)
      • G

        private int G​(int u,
                      int v,
                      int w)
      • H

        private int H​(int u,
                      int v,
                      int w)
      • K

        private int K​(int u,
                      int v,
                      int w)