文章目录
- 一、引入依赖
- 二、工具代码
- 三、测试代码
- 四、输出结果
一、引入依赖
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
{@Testpublic void test()throws IOException{// 字符串MD5String str = "Marydon";String md51 = MD5Utils.encryptToMD5(str);String md52 = MD5Utils.encrypt2ToMD5(str);log.info("MD5加密方法一:{}", md51);log.info("MD5加密方法二:{}", md52);// 文件MD5Resource 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