Java获取MultipartFile文件的MD5
侧边栏壁纸
  • 累计撰写 190 篇文章
  • 累计收到 1,269 条评论

Java获取MultipartFile文件的MD5

萧瑟
2021-10-14 / 2 评论 / 962 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年10月14日,已超过1146天没有更新,若内容或图片失效,请留言反馈。
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[]InputStreamString )生成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;
}

评论 (2)

取消
  1. 头像
    珂泽
    湖北省鄂州市 Windows 10 · Microsoft Edge

    学到了表情

    回复
    1. 头像
      萧瑟 作者
      北京市 Windows 10 · Google Chrome
      @ 珂泽

      这个是我基于分片上传研究的。表情

      回复