Here you can find the source of computeMD5Hash(InputStream is)
Parameter | Description |
---|---|
is | Needed to compute with MD5. |
Parameter | Description |
---|---|
NoSuchAlgorithmException | NoSuchAlgorithmException. |
IOException | IOException. |
public static byte[] computeMD5Hash(InputStream is) throws NoSuchAlgorithmException, IOException
//package com.java2s; //License from project: Apache License import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Main { /**//w w w .j a va 2 s. c om * Computes the MD5 hash of the data in the given input stream and returns it as an array of * bytes. * * @param is Needed to compute with MD5. * @return byte[] Computed with MD5. * @throws NoSuchAlgorithmException NoSuchAlgorithmException. * @throws IOException IOException. */ public static byte[] computeMD5Hash(InputStream is) throws NoSuchAlgorithmException, IOException { BufferedInputStream bis = new BufferedInputStream(is); try { MessageDigest messageDigest = MessageDigest.getInstance("MD5"); byte[] buffer = new byte[16384]; int bytesRead = -1; while ((bytesRead = bis.read(buffer, 0, buffer.length)) != -1) { messageDigest.update(buffer, 0, bytesRead); } return messageDigest.digest(); } finally { try { bis.close(); } catch (Exception e) { System.err.println("Unable to close input stream of hash candidate: " + e); } } } /** * Computes the MD5 hash of the given data and returns it as an array of bytes. * * @param data Needed to compute with MD5. * @return byte[] Computed with MD5. * @throws NoSuchAlgorithmException NoSuchAlgorithmException. * @throws IOException IOException. */ public static byte[] computeMD5Hash(byte[] data) throws NoSuchAlgorithmException, IOException { return computeMD5Hash(new ByteArrayInputStream(data)); } }