@@ -60,8 +60,6 @@ public class DigestUtils {
6060
6161 private static final int STREAM_BUFFER_LENGTH = 1024 ;
6262
63- private final MessageDigest messageDigest ;
64-
6563 /**
6664 * Reads through a byte array and returns the digest for the data. Provided for symmetry with other methods.
6765 *
@@ -171,7 +169,7 @@ public static byte[] digest(final MessageDigest messageDigest, final RandomAcces
171169 */
172170 public static MessageDigest getDigest (final String algorithm ) {
173171 try {
174- return MessageDigest . getInstance (algorithm );
172+ return getMessageDigest (algorithm );
175173 } catch (final NoSuchAlgorithmException e ) {
176174 throw new IllegalArgumentException (e );
177175 }
@@ -196,7 +194,7 @@ public static MessageDigest getDigest(final String algorithm) {
196194 */
197195 public static MessageDigest getDigest (final String algorithm , final MessageDigest defaultMessageDigest ) {
198196 try {
199- return MessageDigest . getInstance (algorithm );
197+ return getMessageDigest (algorithm );
200198 } catch (final Exception e ) {
201199 return defaultMessageDigest ;
202200 }
@@ -229,6 +227,20 @@ public static MessageDigest getMd5Digest() {
229227 return getDigest (MessageDigestAlgorithms .MD5 );
230228 }
231229
230+ /**
231+ * Returns a {@code MessageDigest} for the given {@code algorithm}.
232+ *
233+ * @param algorithm the name of the algorithm requested. See
234+ * <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA" > Appendix A in the Java
235+ * Cryptography Architecture Reference Guide</a> for information about standard algorithm names.
236+ * @return A digest instance.
237+ * @see MessageDigest#getInstance(String)
238+ * @throws NoSuchAlgorithmException if no Provider supports a MessageDigestSpi implementation for the specified algorithm.
239+ */
240+ private static MessageDigest getMessageDigest (final String algorithm ) throws NoSuchAlgorithmException {
241+ return MessageDigest .getInstance (algorithm );
242+ }
243+
232244 /**
233245 * Returns an SHA-1 digest.
234246 *
@@ -1527,6 +1539,8 @@ public static MessageDigest updateDigest(final MessageDigest messageDigest, fina
15271539 return messageDigest ;
15281540 }
15291541
1542+ private final MessageDigest messageDigest ;
1543+
15301544 /**
15311545 * Preserves binary compatibility only.
15321546 * As for previous versions does not provide useful behavior
0 commit comments