17
Jul

Generate MD5 file checksum hash in java

package entities;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import entities.Student;

public class Main {

	private static String getFileChecksum(String fileName) throws IOException, NoSuchAlgorithmException {

		File file = new File(fileName);
		MessageDigest digest = MessageDigest.getInstance("MD5");

		// Get file input stream for reading the file content
		FileInputStream fis = new FileInputStream(file);

		// Create byte array to read data in chunks
		byte[] byteArray = new byte[1024];
		int bytesCount = 0;

		// Read file data and update in message digest
		while ((bytesCount = fis.read(byteArray)) != -1) {
			digest.update(byteArray, 0, bytesCount);
		}
		;

		// close the stream; We don't need it now.
		fis.close();

		// Get the hash's bytes
		byte[] bytes = digest.digest();

		// This bytes[] has bytes in decimal format;
		// Convert it to hexadecimal format
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < bytes.length; i++) {
			sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
		}

		// return complete hash
		return sb.toString();
	}

	public static void main(String[] args) throws NoSuchAlgorithmException, IOException {
		String checksum = getFileChecksum("C:\\Users\\srasz\\Desktop\\JS\\xyz.wsdl");
		System.out.println(checksum);
	}

}