java代码实现MD5加密及验证过程详解

 更新时间:2019年10月12日 10:20:37   作者:我的有趣住在无趣里  
这篇文章主要介绍了java代码实现MD5加密及验证过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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加密方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java获取当前日期和时间的二种方法分享

    java获取当前日期和时间的二种方法分享

    这篇文章主要介绍了java获取当前日期和时间的二种方法,需要的朋友可以参考下
    2014-03-03
  • java中正则表达式实例详解

    java中正则表达式实例详解

    这篇文章主要介绍了java中正则表达式实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • java代码规范review异常事故记录

    java代码规范review异常事故记录

    这篇文章主要为大家介绍了java代码规范关于异常review代码发生异常的事故记录,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Spring项目使用Maven和BCrypt实现修改密码功能方式

    Spring项目使用Maven和BCrypt实现修改密码功能方式

    在数字时代,信息安全尤其是密码安全至关重要,本文通过实例探讨如何在Spring项目中利用Maven和BCrypt实现一个安全的密码修改功能,我们将从环境搭建到编写核心业务逻辑,再到完成功能测试,确保每一步都遵循最佳安全实践,通过本文,你将了解到密码安全的重要性
    2024-10-10
  • springboot整合quartz项目使用案例

    springboot整合quartz项目使用案例

    quartz是一个定时调度的框架,就目前市场上来说,其实有比quartz更优秀的一些定时调度框架,不但性能比quartz好,学习成本更低,而且还提供可视化操作定时任务,这篇文章主要介绍了springboot整合quartz项目使用(含完整代码),需要的朋友可以参考下
    2023-05-05
  • SpringCloud之Ribbon使用示例解析

    SpringCloud之Ribbon使用示例解析

    这篇文章主要为大家介绍了SpringCloud之Ribbon使用示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • spring使用aspect注解切面不起作用的排查过程及解决

    spring使用aspect注解切面不起作用的排查过程及解决

    这篇文章主要介绍了spring使用aspect注解切面不起作用的排查过程及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 深入浅析ArrayList 和 LinkedList的执行效率比较

    深入浅析ArrayList 和 LinkedList的执行效率比较

    这篇文章主要介绍了ArrayList 和 LinkedList的执行效率比较的相关资料,需要的朋友可以参考下
    2017-08-08
  • MyBatisPlus分页的同时指定排序规则说明

    MyBatisPlus分页的同时指定排序规则说明

    这篇文章主要介绍了MyBatisPlus分页的同时指定排序规则说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 解决RestTemplate第一次请求响应速度较慢的问题

    解决RestTemplate第一次请求响应速度较慢的问题

    这篇文章主要介绍了解决RestTemplate第一次请求响应速度较慢的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10

最新评论