java代码如何获取一个文件的SHA-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()); } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。