Java MD5 Stream computeMD5Hash(InputStream is)

Here you can find the source of computeMD5Hash(InputStream is)

Description

Computes the MD5 hash of the data in the given input stream and returns it as an array of bytes.

License

Apache License

Parameter

Parameter Description
is Needed to compute with MD5.

Exception

Parameter Description
NoSuchAlgorithmException NoSuchAlgorithmException.
IOException IOException.

Return

byte[] Computed with MD5.

Declaration

public static byte[] computeMD5Hash(InputStream is) throws NoSuchAlgorithmException, IOException 

Method Source Code


//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));
    }
}

Related

  1. computeMD5(InputStream inputStream)
  2. computeMd5(InputStream is)
  3. computeMD5(InputStream message)
  4. computeMD5checksum(InputStream input)
  5. computeMd5Hash(InputStream is)
  6. computeMD5Hash(InputStream is)