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());
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


