文章目录
一、引入依赖
commons-codec
xml
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.13</version>
</dependency>
二、工具代码
java
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);
}
}
}
三、测试代码
java
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);
}
}
四、输出结果
bash
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