当前位置 主页 > 网站技术 > 代码类 >

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

    栏目:代码类 时间:2019-10-31 12:05

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

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