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