【随笔】MD5加密字符串、文件commons-codec、springframework实现
2023-12-21 18:58:38
一、引入依赖
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
文章来源:https://blog.csdn.net/qq_16127313/article/details/135135799
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!