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");
}
}