当前位置: 首页 > news >正文

【随笔】MD5加密字符串、文件apache、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
{@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
http://www.lryc.cn/news/265876.html

相关文章:

  • java八股 设计模式
  • Docker安装(CentOS)+简单使用
  • Mybatis配置-环境配置(environments)
  • Android模拟器的安装和adb连接
  • 引领创新潮流,武汉灰京文化开创游戏行业新推广标杆
  • HTML5文档
  • springboot实现发送邮件开箱即用
  • 论文阅读——RS DINO
  • 【即插即用篇】YOLOv8改进实战 | 引入 Involution(内卷),用于视觉识别的新一代神经网络!涨点神器!
  • 在Excel中,如何简单快速地删除重复项,这里提供详细步骤
  • 【Kafka-Eagle】EFAK告警配置与实践
  • 机器学习 | 概率图模型
  • 25、新加坡南洋理工、新加坡国立大学提出FBCNet:完美融合FBCSP的CNN,EEG解码SOTA水准![抱歉老师,我太想进步了!]
  • 单调栈分类、封装和总结
  • 【Amazon 实验①】使用 Amazon CloudFront加速Web内容分发
  • <math.h> 头文件:C语言数学库函数
  • 1.CentOS7网络配置
  • Prompt-to-Prompt:基于 cross-attention 控制的图像编辑技术
  • 搭载紫光展锐芯的移远通信RedCap模组顺利通过中国联通OPENLAB实验室认证
  • 16-高并发-队列术
  • 【设计模式-2.5】创建型——建造者模式
  • VideoPoet: Google的一种用于零样本视频生成的大型语言模型
  • pytest常用命令行参数
  • 05. Springboot admin集成Actuator(一)
  • AI生成SolidUI-新版本架构调试Debug
  • ctfshow sql 195-200
  • 微信小程序实现地图功能(腾讯地图)
  • Vue如何请求接口——axios请求
  • 【数据结构一】初始Java集合框架(前置知识)
  • 直接将第三方数据插入到 Redis 中