java代码如何获取一个文件的SHA-1哈希值呢?

重生 Java经验 发布时间:2023-12-24 11:23:33 阅读数:10407 1
下文笔者讲述使用java代码获取文件的SHA-1哈希值的方法及示例分享,如下所示

获取文件SHA-1哈希值的实现思路

1.获取 MessageDigest.getInstance("SHA-1") 对象
2.编译字节信息,更新其散列值 
3.最后转换为 十六进制输出即可
例:计算一个文件的SHA-1哈希值
import java.io.FileInputStream;
import java.security.MessageDigest;
 
public class SHA1Checksum {
 
    public static byte[] createChecksum(String filename) throws Exception {
        // 读取文件,计算哈希值
        MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
        try (FileInputStream fis = new FileInputStream(filename)) {
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = fis.read(buffer)) != -1) {
                sha1.update(buffer, 0, bytesRead);
            }
        }
        return sha1.digest();
    }
 
    public static String convertToHex(byte[] data) {
        // 将字节数组转换为十六进制字符串
        StringBuilder sb = new StringBuilder();
        for (byte b : data) {
            sb.append(String.format("%02X", b));
        }
        return sb.toString();
    }
 
    public static void main(String[] args) {
        String filename = "java265.txt";
        try {
            byte[] hash = createChecksum(filename);
            String hashString = convertToHex(hash);
            System.out.println("SHA-1 hash of " + filename + ": " + hashString);
        } catch (Exception e) {
            System.err.println("Error calculating hash: " + e.getMessage());
        }
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202312/17033882547564.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者