package com.netease.nim.uikit.common.util.string; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; public class MD5 { public static String getStringMD5(String value) { if (value == null || value.trim().length() < 1) { return null; } try { return getMD5(value.getBytes("UTF-8")); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e.getMessage(), e); } } public static String getMD5(byte[] source) { try { MessageDigest md5 = MessageDigest.getInstance("MD5"); return HexDump.toHex(md5.digest(source)); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } } public static String getStreamMD5(String filePath) { String hash=null; byte[] buffer = new byte[4096]; BufferedInputStream in=null; try { MessageDigest md5 = MessageDigest.getInstance("MD5"); in = new BufferedInputStream(new FileInputStream(filePath)); int numRead = 0; while ((numRead = in.read(buffer)) > 0) { md5.update(buffer, 0, numRead); } in.close(); hash = HexDump.toHex(md5.digest()); } catch (Exception e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (Exception ex) { ex.printStackTrace(); } } } return hash; } }