Java获取文件MD5
在开发过程中,有些场景需要对上传的文件进行唯一校验,防止文件重复上传,这个时候就需要对文件取唯一值。
如果你只使用标准的MD5,JAVA自带的commons-codec包就提供了获取16进制MD5值的方法。其底层实现上,也是分多次将一个文件读入,所以性能上也不错。
DigestUtils提供的MD5算法和标准的压缩工具计算MD5,命令计算MD5的值均是一样的。
DigestUtils.md5Hex(new FileInputStream(path));
需要导入commons-codec依赖包
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
简单的工具类如下:
package com.util;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Date;
import org.apache.commons.codec.digest.DigestUtils;
/**
* @author admin
* @date 2020年3月26日
* @description
*
*/
public class FileMd5Util {
public static String getMD5(String path) {
String md5Hex = null;
try {
md5Hex = DigestUtils.md5Hex(new FileInputStream(path));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return md5Hex;
}
public static void main(String[] args) {
String path = "D:/Download/Git源代码管理规范.docx";
long start = new Date().getTime();
String md5 = getMD5(path);
long end = new Date().getTime();
System.out.println(md5 + "----" + (end - start) + "ms");
}
}