【随笔】MD5加密字符串、文件commons-codec、springframework实现

一、引入依赖

commons-codec

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.13</version>
</dependency>

二、工具代码

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.codec.Charsets;
import org.apache.commons.codec.digest.DigestUtils;

public class MD5Utils
{
   
    /**
     * MD5加密之方法一
     * 
     * @explain 借助apache工具类DigestUtils实现
     * @param str 待加密字符串
     * @return 16进制加密字符串
     */
    public static String encryptToMD5(String str)
    {
   
        return DigestUtils.md5Hex(str);
    }
    
    /**
     * MD5加密之方法一
     * 
     * @explain 借助apache工具类DigestUtils实现
     * @param file 待加密文件
     * @return 16进制加密字符串
     * @throws IOException
     */
    public static String encryptToMD5(File file)
        throws IOException
    {
   
        try (InputStream fis = new FileInputStream(file))
        {
   
            return DigestUtils.md5Hex(fis);
        }
    }
    
    /**
     * MD5加密之方法二
     * 
     * @explain spring实现
     * @param str 待加密字符串
     * @return 16进制加密字符串
     */
    public static String encrypt2ToMD5(String str)
    {
   
        return org.springframework.util.DigestUtils.md5DigestAsHex(str.getBytes(Charsets.UTF_8));
    }
    
    /**
     * MD5加密之方法二
     * 
     * @explain spring实现
     * @param file 待加密文件
     * @return 16进制加密字符串
     * @throws IOException
     */
    public static String encrypt2ToMD5(File file)
        throws IOException
    {
   
        try (InputStream fis = new FileInputStream(file))
        {
   
            return org.springframework.util.DigestUtils.md5DigestAsHex(fis);
        }
    }
}

三、测试代码


import java.io.IOException;

import org.junit.jupiter.api.Test;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class MD5UtilsTest
{
   
    @Test
    public void test()
        throws IOException
    {
   
        // 字符串MD5
        String str = "Marydon";
        String md51 = MD5Utils.encryptToMD5(str);
        String md52 = MD5Utils.encrypt2ToMD5(str);
        log.info("MD5加密方法一:{}", md51);
        log.info("MD5加密方法二:{}", md52);
        
        // 文件MD5
        Resource resource = new ClassPathResource("data/pic/001.jpg");
        md51 = MD5Utils.encryptToMD5(resource.getFile());
        md52 = MD5Utils.encrypt2ToMD5(resource.getFile());
        log.info("MD5加密方法一:{}", md51);
        log.info("MD5加密方法二:{}", md52);
    }
}

四、输出结果

2023-12-21 17:24:47.993  INFO 35664 --- [           main] c.f.c.u.MD5UtilsTest                     : MD5加密方法一:988218e7eefcd86d5d855a8947f37f43
2023-12-21 17:24:48.000  INFO 35664 --- [           main] c.f.c.u.MD5UtilsTest                     : MD5加密方法二:988218e7eefcd86d5d855a8947f37f43
2023-12-21 17:24:48.019  INFO 35664 --- [           main] c.f.c.u.MD5UtilsTest                     : MD5加密方法一:fcae27bef5b129270a72a7f75f9a252e
2023-12-21 17:24:48.019  INFO 35664 --- [           main] c.f.c.u.MD5UtilsTest                     : MD5加密方法二:fcae27bef5b129270a72a7f75f9a252e

相关推荐

  1. MD5加密返回32位密文字符串

    2023-12-22 12:40:03       10 阅读
  2. 【.NET】MD5加密

    2023-12-22 12:40:03       41 阅读
  3. <span style='color:red;'>MD</span><span style='color:red;'>5</span><span style='color:red;'>加密</span>

    MD5加密

    2023-12-22 12:40:03      18 阅读
  4. c# MD5加密函数

    2023-12-22 12:40:03       16 阅读
  5. 前端加密后端校验(MD5

    2023-12-22 12:40:03       45 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-22 12:40:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-22 12:40:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-22 12:40:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-22 12:40:03       20 阅读

热门阅读

  1. SpringBoot 异步编程

    2023-12-22 12:40:03       35 阅读
  2. python中文语音识别

    2023-12-22 12:40:03       52 阅读
  3. 华纳云:怎么用python实现进程,线程和协程

    2023-12-22 12:40:03       44 阅读
  4. AI write rust 2

    2023-12-22 12:40:03       34 阅读
  5. rust热门前后端框架

    2023-12-22 12:40:03       42 阅读
  6. 密钥盐技术简介及作用(含示例)

    2023-12-22 12:40:03       41 阅读
  7. 力扣61. 旋转链表

    2023-12-22 12:40:03       43 阅读