Java MessageDigest 類用于生成文件的哈希值。以下是一個簡單的示例,說明如何使用 MessageDigest 處理文件并計算其 MD5 哈希值:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
public static String calculateMD5(String filePath) {
try {
// 創建一個 MessageDigest 實例,指定算法為 MD5
MessageDigest md = MessageDigest.getInstance("MD5");
// 使用 FileInputStream 讀取文件內容
FileInputStream fis = new FileInputStream(new File(filePath));
byte[] buffer = new byte[1024];
int bytesRead;
// 循環讀取文件內容并更新 MessageDigest 實例
while ((bytesRead = fis.read(buffer)) != -1) {
md.update(buffer, 0, bytesRead);
}
// 關閉 FileInputStream
fis.close();
// 獲取 MD5 哈希值的字節數組
byte[] mdBytes = md.digest();
// 將字節數組轉換為十六進制字符串
StringBuilder sb = new StringBuilder();
for (byte b : mdBytes) {
sb.append(String.format("%02x", b));
}
return sb.toString();
} catch (IOException | NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
calculateMD5
方法,傳入文件路徑,并打印結果:public static void main(String[] args) {
String filePath = "path/to/your/file.txt";
String md5Hash = calculateMD5(filePath);
System.out.println("MD5 hash of the file: " + md5Hash);
}
將上述代碼替換為您的文件路徑,然后運行程序。它將計算文件的 MD5 哈希值并將其打印到控制臺。您可以根據需要更改算法,例如使用 SHA-256 替換 “MD5”。