方式一,使用java原生代码实现
public static String getJdkFileMD5(String path) {
try {
BigInteger bi = null;
byte[] buffer = new byte[1024 * 4];
int len = 0;
MessageDigest md = MessageDigest.getInstance("MD5");
File f = new File(path);
FileInputStream fis = null;
fis = new FileInputStream(f);
while ((len = fis.read(buffer)) != -1) {
md.update(buffer, 0, len);
}
fis.close();
byte[] b = md.digest();
bi = new BigInteger(1, b);
return bi.toString(16);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
方式二,使用Apache的codec包DigestUtils工具类实现
public static String getApacheCodecFileMD5(String path) {
try {
String md5 = DigestUtils.md5Hex(new FileInputStream(path));
return md5;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
测试案例:
public static void main(String[] args) throws Exception {
System.out.println(getJdkFileMD5("/Users/aaa/Downloads/a.pptx"));
System.out.println(getApacheCodecFileMD5("/Users/aaa/Downloads/a.pptx"));
}
输出结果:
251bd44c09998ca19267b037b24b8aa3
251bd44c09998ca19267b037b24b8aa3