Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package mx.com.pendulum.carga.util; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.security.MessageDigest; import org.springframework.web.multipart.MultipartFile; /** * * @author hmoctezuma */ public class Md5Converter { public static String calculaMD5(byte[] data) { InputStream is = new ByteArrayInputStream(data); try { byte[] buffer = new byte[1024]; MessageDigest digest = MessageDigest.getInstance("MD5"); int numRead = 0; while (numRead != -1) { numRead = is.read(buffer); if (numRead > 0) { digest.update(buffer, 0, numRead); } } byte[] md5Bytes = digest.digest(); return convertHashToString(md5Bytes); } catch (Exception e) { return null; } finally { if (is != null) { try { is.close(); } catch (Exception e) { } } } } public static String getMD5Checksum(MultipartFile multipartFile) { InputStream is = null; try { is = new ByteArrayInputStream(multipartFile.getBytes()); byte[] buffer = new byte[1024]; MessageDigest digest = MessageDigest.getInstance("MD5"); int numRead = 0; while (numRead != -1) { numRead = is.read(buffer); if (numRead > 0) { digest.update(buffer, 0, numRead); } } byte[] md5Bytes = digest.digest(); return convertHashToString(md5Bytes); } catch (Exception e) { return null; } finally { if (is != null) { try { is.close(); } catch (Exception e) { } } } } private static String convertHashToString(byte[] md5Bytes) { String returnVal = ""; for (int i = 0; i < md5Bytes.length; i++) { returnVal += Integer.toString((md5Bytes[i] & 0xff) + 0x100, 16).substring(1); } return returnVal.toUpperCase(); } }