/** * Returns an MD5 MessageDigest. * * @return An MD5 digest instance. * @throws IllegalArgumentException * when a {@link NoSuchAlgorithmException} is caught, which should never happen because MD5 is a * built-in algorithm * @see MessageDigestAlgorithms#MD5 */ public static MessageDigest getMd5Digest() { return getDigest(MessageDigestAlgorithms.MD5); }
/** * Test whether the algorithm is supported. * @param messageDigestAlgorithm the algorithm name * @return {@code true} if the algorithm can be found * @since 1.11 */ public static boolean isAvailable(final String messageDigestAlgorithm) { return getDigest(messageDigestAlgorithm, null) != null; }
/** * Returns an MD2 MessageDigest. * * @return An MD2 digest instance. * @throws IllegalArgumentException * when a {@link NoSuchAlgorithmException} is caught, which should never happen because MD2 is a * built-in algorithm * @see MessageDigestAlgorithms#MD2 * @since 1.7 */ public static MessageDigest getMd2Digest() { return getDigest(MessageDigestAlgorithms.MD2); }
/** * Returns an SHA-1 digest. * * @return An SHA-1 digest instance. * @throws IllegalArgumentException * when a {@link NoSuchAlgorithmException} is caught, which should never happen because SHA-1 is a * built-in algorithm * @see MessageDigestAlgorithms#SHA_1 * @since 1.7 */ public static MessageDigest getSha1Digest() { return getDigest(MessageDigestAlgorithms.SHA_1); }
/** * Returns an SHA-256 digest. * <p> * Throws a <code>RuntimeException</code> on JRE versions prior to 1.4.0. * </p> * * @return An SHA-256 digest instance. * @throws IllegalArgumentException * when a {@link NoSuchAlgorithmException} is caught, which should never happen because SHA-256 is a * built-in algorithm * @see MessageDigestAlgorithms#SHA_256 */ public static MessageDigest getSha256Digest() { return getDigest(MessageDigestAlgorithms.SHA_256); }
/** * Creates an instance using the provided {@link MessageDigest} parameter. * * This can then be used to create digests using methods such as * {@link #digest(byte[])} and {@link #digestAsHex(File)}. * * @param name the name of the {@link MessageDigest} to use * @see #getDigest(String) * @throws IllegalArgumentException * when a {@link NoSuchAlgorithmException} is caught. * @since 1.11 */ public DigestUtils(final String name) { this(getDigest(name)); }
/** * Returns an SHA-384 digest. * <p> * Throws a <code>RuntimeException</code> on JRE versions prior to 1.4.0. * </p> * * @return An SHA-384 digest instance. * @throws IllegalArgumentException * when a {@link NoSuchAlgorithmException} is caught, which should never happen because SHA-384 is a * built-in algorithm * @see MessageDigestAlgorithms#SHA_384 */ public static MessageDigest getSha384Digest() { return getDigest(MessageDigestAlgorithms.SHA_384); }
/** * Returns an SHA-512 digest. * <p> * Throws a <code>RuntimeException</code> on JRE versions prior to 1.4.0. * </p> * * @return An SHA-512 digest instance. * @throws IllegalArgumentException * when a {@link NoSuchAlgorithmException} is caught, which should never happen because SHA-512 is a * built-in algorithm * @see MessageDigestAlgorithms#SHA_512 */ public static MessageDigest getSha512Digest() { return getDigest(MessageDigestAlgorithms.SHA_512); }
private void run(final String prefix, final String messageDigestAlgorithm) throws IOException { run(prefix, DigestUtils.getDigest(messageDigestAlgorithm)); }
private void run() throws IOException { if (algorithm.equalsIgnoreCase("ALL") || algorithm.equals("*")) { run(MessageDigestAlgorithms.values()); return; } final MessageDigest messageDigest = DigestUtils.getDigest(algorithm, null); if (messageDigest != null) { run("", messageDigest); } else { run("", DigestUtils.getDigest(algorithm.toUpperCase(Locale.ROOT))); } }
private static byte[] traditionalHash(HashAlgorithm algorithm, byte[] value) { return DigestUtils.getDigest(algorithm.getName()).digest(value); }
private static byte[] traditionalHashStreaming(HashAlgorithm algorithm, InputStream value) throws IOException { MessageDigest digest = DigestUtils.getDigest(algorithm.getName()); // DigestInputStream digestInputStream = new DigestInputStream(value, digest); return DigestUtils.digest(digest, value); }
@Test(expected=IllegalArgumentException.class) public void testInternalNoSuchAlgorithmException() { DigestUtils.getDigest("Bogus Bogus"); }
private byte[] digestTestData() throws IOException { return DigestUtils.digest(DigestUtils.getDigest(messageDigestAlgorithm),getTestData()); }
@Test public void testDigestByteBuffer() throws IOException { Assume.assumeTrue(DigestUtils.isAvailable(messageDigestAlgorithm)); Assert.assertArrayEquals(digestTestData(), DigestUtils.digest(DigestUtils.getDigest(messageDigestAlgorithm), ByteBuffer.wrap(getTestData()))); Assert.assertArrayEquals(digestTestData(), DigestUtils.digest(DigestUtils.getDigest(messageDigestAlgorithm),ByteBuffer.wrap(getTestData()))); }
@Test public void testDigestInputStream() throws IOException { Assume.assumeTrue(DigestUtils.isAvailable(messageDigestAlgorithm)); Assert.assertArrayEquals(digestTestData(), DigestUtils.digest(DigestUtils.getDigest(messageDigestAlgorithm), new ByteArrayInputStream(getTestData()))); Assert.assertArrayEquals(digestTestData(), DigestUtils.digest(DigestUtils.getDigest(messageDigestAlgorithm),new ByteArrayInputStream(getTestData()))); }
@Test public void testGetMessageDigest() throws IOException, NoSuchAlgorithmException { Assume.assumeTrue(DigestUtils.isAvailable(messageDigestAlgorithm)); final MessageDigest messageDigest = DigestUtils.getDigest(messageDigestAlgorithm); Assert.assertEquals(messageDigestAlgorithm, messageDigest.getAlgorithm()); }
@Test public void testDigestByteArray() throws IOException { Assume.assumeTrue(DigestUtils.isAvailable(messageDigestAlgorithm)); Assert.assertArrayEquals(digestTestData(), DigestUtils.digest(DigestUtils.getDigest(messageDigestAlgorithm), getTestData())); Assert.assertArrayEquals(digestTestData(), DigestUtils.digest(DigestUtils.getDigest(messageDigestAlgorithm),getTestData())); }
@Test public void testDigestFile() throws IOException { Assume.assumeTrue(DigestUtils.isAvailable(messageDigestAlgorithm)); Assert.assertArrayEquals(digestTestData(), DigestUtils.digest(DigestUtils.getDigest(messageDigestAlgorithm), getTestFile())); Assert.assertArrayEquals(digestTestData(), DigestUtils.digest(DigestUtils.getDigest(messageDigestAlgorithm),getTestFile())); }