java如何獲取文件hash值

小億
100
2024-09-05 06:39:59
欄目: 編程語言

在Java中,你可以使用MessageDigest類來獲取文件的哈希值。以下是一個(gè)示例,展示了如何使用SHA-256算法獲取文件的哈希值:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class FileHash {
    public static void main(String[] args) {
        String filePath = "path/to/your/file";
        String hash = getFileHash(filePath, "SHA-256");
        System.out.println("文件哈希值: " + hash);
    }

    public static String getFileHash(String filePath, String algorithm) {
        try {
            MessageDigest md = MessageDigest.getInstance(algorithm);
            File file = new File(filePath);
            FileInputStream fis = new FileInputStream(file);
            byte[] dataBytes = new byte[1024];
            int bytesRead;

            while ((bytesRead = fis.read(dataBytes)) != -1) {
                md.update(dataBytes, 0, bytesRead);
            }

            byte[] digestBytes = md.digest();
            StringBuilder sb = new StringBuilder();
            for (byte b : digestBytes) {
                sb.append(String.format("%02x", b));
            }

            return sb.toString();
        } catch (NoSuchAlgorithmException | IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}

path/to/your/file替換為你要計(jì)算哈希值的文件路徑。你還可以通過更改algorithm參數(shù)來使用其他哈希算法,例如MD5SHA-1。

0