java代碼實現(xiàn)MD5加密及驗證過程詳解
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)文章
javaSE,javaEE,javaME的區(qū)別小結(jié)
本篇文章小編就為大家簡單說說JavaSE、JavaEE、JavaME三者之間的區(qū)別,需要的朋友可以過來參考下,感興趣的小伙伴們可以參考一下2023-08-08Java中數(shù)組復(fù)制的三種方式小結(jié)
在Java中,數(shù)組復(fù)制是一種常見的操作,它允許開發(fā)人員在不修改原始數(shù)組的情況下創(chuàng)建一個新的數(shù)組,本文就來介紹三種方法,具有一定的參考價值,感興趣的可以了解一下2024-02-02詳解JavaEE 使用 Redis 數(shù)據(jù)庫進行內(nèi)容緩存和高訪問負(fù)載
本篇文章主要介紹了JavaEE 使用 Redis 數(shù)據(jù)庫進行內(nèi)容緩存和高訪問負(fù)載,具有一定的參考價值,有興趣的可以了解一下2017-08-08