Java如何将文件内容转换为MD5哈希值
更新时间:2025年05月19日 14:38:19 作者:CnLg.NJ
这篇文章主要介绍了Java如何将文件内容转换为MD5哈希值的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Java文件内容转换为MD5哈希值
若要把读取到的 files 列表里的内容转换为 MD5 哈希值,你可以逐个遍历 files 列表中的元素,将每个元素的内容计算成 MD5 哈希值。
一个完整的Java示例代码
展示了如何实现这一功能:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.List;
class CheckHelper {
public static String getOcetString(byte[] buffer, int bytesRead) {
return new String(buffer, 0, bytesRead);
}
}
public class FilesToMD5 {
public static String calculateMD5(String input) {
try {
// 获取 MD5 消息摘要实例
MessageDigest md = MessageDigest.getInstance("MD5");
// 计算输入字符串的 MD5 哈希值
byte[] digest = md.digest(input.getBytes());
StringBuilder hexString = new StringBuilder();
for (byte b : digest) {
String hex = Integer.toHexString(0xFF & b);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
// 若 MD5 算法不可用,抛出运行时异常
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
String path = "path/to/your/file.txt";
int blockSize = 1024;
long fileLength = 0;
List<String> files = new ArrayList<>();
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path))) {
byte[] buffer = new byte[blockSize];
int bytesRead;
while ((bytesRead = bis.read(buffer)) != -1) {
fileLength += bytesRead;
files.add(CheckHelper.getOcetString(buffer, bytesRead));
}
} catch (IOException e) {
e.printStackTrace();
}
// 遍历 files 列表,计算每个元素的 MD5 哈希值
for (String content : files) {
String md5 = calculateMD5(content);
System.out.println("内容: " + content);
System.out.println("MD5 哈希值: " + md5);
}
}
} 代码解释
calculateMD5 方法:
- 借助
MessageDigest.getInstance("MD5")获取 MD5 消息摘要实例。 - 利用
md.digest(input.getBytes())计算输入字符串的 MD5 哈希值。 - 把计算得到的字节数组转换为十六进制字符串。
main 方法:
- 读取文件内容到
files列表。 - 遍历
files列表,对每个元素调用calculateMD5方法计算 MD5 哈希值,并将结果打印输出。
注意事项
- 要把
"path/to/your/file.txt"替换成实际的文件路径。 - 此代码是对
files列表里的每个元素分别计算 MD5 哈希值。若你要计算整个文件内容的 MD5 哈希值,需把所有元素合并后再计算。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
详解SpringBoot缓存的实例代码(EhCache 2.x 篇)
这篇文章主要介绍了详解SpringBoot缓存的实例代码(EhCache 2.x 篇),具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-07-07
SpringBoot框架中Mybatis-plus的简单使用操作汇总
这篇文章主要介绍了SpringBoot框架中Mybatis-plus的简单使用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-02-02
java之使用多线程代替for循环(解决主线程提前结束问题)
这篇文章主要介绍了java之使用多线程代替for循环(解决主线程提前结束问题),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03
SpringBoot集成Spring Security用JWT令牌实现登录和鉴权的方法
这篇文章主要介绍了SpringBoot集成Spring Security用JWT令牌实现登录和鉴权的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-05-05


最新评论