Package org.apache.tomcat.util.security

## Class ConcurrentMessageDigest

- java.lang.Object
- - org.apache.tomcat.util.security.ConcurrentMessageDigest

    public class ConcurrentMessageDigest
    extends java.lang.Object

A thread safe wrapper around `MessageDigest` that does not make use of ThreadLocal and - broadly - only creates enough MessageDigest objects to satisfy the concurrency requirements.

### Method Summary

All Methods Static Methods Concrete Methods
`static byte[]` `digest​(java.lang.String algorithm, byte[]... input)`
`static byte[]` `digest​(java.lang.String algorithm, int iterations, byte[]... input)`
`static byte[]` `digestMD5​(byte[]... input)`
`static byte[]` `digestSHA1​(byte[]... input)`
`static void` `init​(java.lang.String algorithm)` Ensures that `digest(String, byte[][])` will support the specified algorithm.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### digestMD5

    public static byte[] digestMD5​(byte[]... input)

#### digestSHA1

    public static byte[] digestSHA1​(byte[]... input)

#### digest

    public static byte[] digest​(java.lang.String algorithm,
                                byte[]... input)

#### digest

    public static byte[] digest​(java.lang.String algorithm,
                                int iterations,
                                byte[]... input)

#### init

    public static void init​(java.lang.String algorithm)
                     throws java.security.NoSuchAlgorithmException

Ensures that `digest(String, byte[][])` will support the specified algorithm. This method must be called and return successfully before using `digest(String, byte[][])`.

Parameters:
  `algorithm` - The message digest algorithm to be supported
Throws:
  `java.security.NoSuchAlgorithmException` - If the algorithm is not supported by the JVM