java代码实现MD5加密及验证过程详解
作者:我的有趣住在无趣里 时间:2023-09-26 02:50:45
MD5加密
在我们的程序中,不管是什么,都会有安全问题,今天就说的是MD5加密的方法
MD5是哈希算法,也就是 从明文A到密文B很容易,但是从密文B到明文A几乎不可能
也就是说,给你密文,是几乎无法通过解密来得到明文的。
这个一般用于存储密码。也就是数据库里存的是密文,管理员只能看到密文,而看不到明文。
在pom文件导入相关依赖
<!--MD5依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
添加MD5工具类
import org.apache.commons.codec.digest.DigestUtils;
public class Md5 {
public final static String md5key = "Ms2";
/**
* MD5方法
* @param text 明文
* @param key 密钥
* @return 密文
* @throws Exception
*/
public static String md5(String text, String key) throws Exception {
//加密后的字符串
String encodeStr= DigestUtils.md5Hex(text + key);
System.out.println("MD5加密后的字符串为:encodeStr="+encodeStr);
return encodeStr;
}
/**
* MD5验证方法
* @param text 明文
* @param key 密钥
* @param md5 密文
* @return true/false
* @throws Exception
*/
public static boolean verify(String text, String key, String md5) throws Exception {
//根据传入的密钥进行验证
String md5Text = md5(text, key);
if(md5Text.equalsIgnoreCase(md5))
{
System.out.println("MD5验证通过");
return true;
}
return false;
}
}
简单说一下里面的md5方法和verify方法
md5方法
方法说明:加密明文
第一个传参的参数是需要加密的文字
第二个传参的参数是需要密钥
这个方法会return出加密后的MD5密文
verify方法
方法说明:将明文转密文,密文与密文进行比较,判断是否一致
第一个参数是明文
第二个参数是密钥
第三个参数是密文
return 出判断结果
里面还有一个变量md5key 这个就是我们的密钥
通过这个密钥对明文进行加密
使用我们在使用这个方法时
要获取密钥可以直接调用这个变量
当然这个密钥也可以自己设置
这就是我们的MD5加密方法
来源:https://www.cnblogs.com/liujunwei/p/11657087.html
标签:java,MD5,加密,验证
0
投稿
猜你喜欢
在编码时如何使用\\r与\\n,两者的区别
2023-04-08 11:19:00
Android 完全退出的实例详解
2022-11-01 22:56:22
Java使用openssl检测网站是否支持ocsp
2022-10-03 15:55:55
详解Java中ThreadLocal类型及简单用法
2022-03-09 11:51:51
Maven profile实现不同环境的配置管理实践
2021-11-11 09:52:15
Lombok为啥这么牛逼?SpringBoot和IDEA官方都要支持它
2021-10-18 23:04:50
MyBatis注解实现动态SQL问题
2023-08-19 02:34:09
示例解析java重载Overloading与覆盖Overriding
2021-11-03 17:22:19
java实现简单猜数字
2022-12-31 16:20:02
Java类和对象的设计原理
2023-10-06 07:00:32
C#对Word文档的创建、插入表格、设置样式等操作实例
2021-10-24 23:13:46
SpringBoot配置Profile实现多环境支持
2023-07-29 21:53:20
C#实现为视频添加水印
2022-02-16 05:30:07
Android应用中Back键的监听及处理实例
2022-09-26 02:00:47
深入学习java枚举的应用
2022-10-27 19:56:34
Java如何通过枚举实现有限状态机
2021-08-05 04:21:05
java实现微信H5支付方法详解
2021-10-15 06:10:30
Java MD5消息摘要算法原理及实现代码
2022-10-22 17:48:03
Android中Gallery和ImageSwitcher的使用实例
2021-05-28 15:52:12
解析android中ProgressBar的用法
2021-07-13 20:38:52