Java获取文件的MD5,核心都是通过JAVA自带的MessageDigest类来实现。
获取文件MD5值主要分为三个步骤:
第一步获取文件的byte信息,
第二步通过MessageDigest类进行MD5加密,
第三步转换成16进制的MD5码值。

方案一

/**
* 获取上传文件的md5
* @param file
* @return
* @throws IOException
*/
public String getMd5(MultipartFile file) {
try {
//获取文件的byte信息
byte[] uploadBytes = file.getBytes();
// 拿到一个MD5转换器
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] digest = md5.digest(uploadBytes);
//转换为16进制
return new BigInteger(1, digest).toString(16);
} catch (Exception e) {
log.error(e.getMessage());
}
return null;
}

方案二

使用JAVA自带的commons-codec包,获取16进制MD5值的方法。
DigestUtils.md5Hex():提供三种类型(byte[]、InputStream、String)生成MD5

/**
* 获取上传文件的md5
* @param file
* @return
* @throws IOException
*/
public String getMd5(MultipartFile file) {
try {
byte[] uploadBytes = file.getBytes();
//file->byte[],生成md5
String md5Hex = DigestUtils.md5Hex(uploadBytes);
//file->InputStream,生成md5
String md5Hex1 = DigestUtils.md5Hex(file.getInputStream());
//对字符串生成md5
String s = DigestUtils.md5Hex("字符串");
return md5Hex ;
} catch (Exception e) {
log.error(e.getMessage());
}
return null;
}

最新文章

  1. ASP.NET MVC之持久化TempData及扩展方法(十三)
  2. string to byte[]
  3. 将jquery和公共样式缓存到localStorage,可以减少Http请求,从而优化页面加载时间
  4. python学习第一天
  5. html嵌套表格示例
  6. 转:NLog 自定义日志内容,写日志到数据库;修改Nlog.config不起作用的原因
  7. 一个可能是pip的一个BUG
  8. USB究竟是什么?看完这篇文章我就明白了!
  9. 改善 ASP.NET MVC 代码库的 5 点建议
  10. Win2003 Server磁盘配额揭密之补遗篇
  11. python查询mysql中文乱码问题
  12. 【js 编程艺术】小制作四
  13. 流API--流的映射
  14. AVS、MPEG-2、H264标准文档
  15. vue路由懒加载 及import
  16. ADB命令(全)
  17. ie8兼容视频播放的探索(探索过程稍微有点长,时间紧迫和耐心稍微差一点点的小伙伴直接往下拉)
  18. c# 获取文件本身的哈希值
  19. Mysql自增ID起始值修改
  20. nginx实现集群高可用

热门文章

  1. MogDB 学习笔记之 -- truncate 属于dml语句
  2. chrome网页截图
  3. docker持久化数据存储
  4. 【C学习笔记】day2-5 求两个数的最大公约数
  5. Hashtable多线程遍历问题
  6. XSStrike-20220320
  7. Coursera Programming Languages, Part B 华盛顿大学 Week 3
  8. HTML复习(18.图片样式)
  9. DHCP 服务详解
  10. luogu 4142