欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java代碼實現(xiàn)MD5加密及驗證過程詳解

 更新時間:2019年10月12日 10:20:37   作者:我的有趣住在無趣里  
這篇文章主要介紹了java代碼實現(xiàn)MD5加密及驗證過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

MD5加密

在我們的程序中,不管是什么,都會有安全問題,今天就說的是MD5加密的方法

MD5是哈希算法,也就是 從明文A到密文B很容易,但是從密文B到明文A幾乎不可能

也就是說,給你密文,是幾乎無法通過解密來得到明文的。

這個一般用于存儲密碼。也就是數(shù)據(jù)庫里存的是密文,管理員只能看到密文,而看不到明文。

在pom文件導(dǎo)入相關(guān)依賴

  <!--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 {
  //根據(jù)傳入的密鑰進行驗證
  String md5Text = md5(text, key);
  if(md5Text.equalsIgnoreCase(md5))
  {
   System.out.println("MD5驗證通過");
   return true;
  }
  return false;
 }
}

簡單說一下里面的md5方法和verify方法

md5方法

  • 方法說明:加密明文
  • 第一個傳參的參數(shù)是需要加密的文字
  • 第二個傳參的參數(shù)是需要密鑰
  • 這個方法會return出加密后的MD5密文

verify方法

  • 方法說明:將明文轉(zhuǎn)密文,密文與密文進行比較,判斷是否一致
  • 第一個參數(shù)是明文
  • 第二個參數(shù)是密鑰
  • 第三個參數(shù)是密文
  • return 出判斷結(jié)果

里面還有一個變量md5key 這個就是我們的密鑰

通過這個密鑰對明文進行加密

使用我們在使用這個方法時

要獲取密鑰可以直接調(diào)用這個變量

當(dāng)然這個密鑰也可以自己設(shè)置

這就是我們的MD5加密方法

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中覆蓋finalize()方法實例代碼

    Java中覆蓋finalize()方法實例代碼

    這篇文章主要介紹了Java中覆蓋finalize()方法實例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • java web如何解決瞬間高并發(fā)

    java web如何解決瞬間高并發(fā)

    這篇文章主要為大家詳細(xì)介紹了java web解決瞬間高并發(fā)的策略,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • javaSE,javaEE,javaME的區(qū)別小結(jié)

    javaSE,javaEE,javaME的區(qū)別小結(jié)

    本篇文章小編就為大家簡單說說JavaSE、JavaEE、JavaME三者之間的區(qū)別,需要的朋友可以過來參考下,感興趣的小伙伴們可以參考一下
    2023-08-08
  • Java中數(shù)組復(fù)制的三種方式小結(jié)

    Java中數(shù)組復(fù)制的三種方式小結(jié)

    在Java中,數(shù)組復(fù)制是一種常見的操作,它允許開發(fā)人員在不修改原始數(shù)組的情況下創(chuàng)建一個新的數(shù)組,本文就來介紹三種方法,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • java compareTo和compare方法比較詳解

    java compareTo和compare方法比較詳解

    這篇文章主要介紹了java compareTo和compare方法比較詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 深入解析Spring中的立即加載和延遲加載

    深入解析Spring中的立即加載和延遲加載

    本文介紹了Spring框架中的立即加載和延遲加載策略,并解釋了它們的適用場景和使用方法,根據(jù)具體的需求和應(yīng)用場景,選擇合適的加載策略,可以提高應(yīng)用程序的性能和資源利用效率,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • java web開發(fā)之實現(xiàn)購物車功能

    java web開發(fā)之實現(xiàn)購物車功能

    這篇文章主要為大家詳細(xì)介紹了java web開發(fā)之實現(xiàn)購物車功能的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 基于Struts2實現(xiàn)防止表單重復(fù)提交

    基于Struts2實現(xiàn)防止表單重復(fù)提交

    這篇文章主要介紹了基于Struts2實現(xiàn)防止表單重復(fù)提交,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 詳解JavaEE 使用 Redis 數(shù)據(jù)庫進行內(nèi)容緩存和高訪問負(fù)載

    詳解JavaEE 使用 Redis 數(shù)據(jù)庫進行內(nèi)容緩存和高訪問負(fù)載

    本篇文章主要介紹了JavaEE 使用 Redis 數(shù)據(jù)庫進行內(nèi)容緩存和高訪問負(fù)載,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • Java進階核心之InputStream流深入講解

    Java進階核心之InputStream流深入講解

    這篇文章主要給大家介紹了關(guān)于Java進階核心之InputStream流的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評論