java代碼實現(xiàn)MD5加密及驗證過程詳解
MD5加密
在我們的程序中,不管是什么,都會有安全問題,今天就說的是MD5加密的方法
MD5是哈希算法,也就是 從明文A到密文B很容易,但是從密文B到明文A幾乎不可能
也就是說,給你密文,是幾乎無法通過解密來得到明文的。
這個一般用于存儲密碼。也就是數(shù)據(jù)庫里存的是密文,管理員只能看到密文,而看不到明文。
在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 {
//根據(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方法
- 方法說明:將明文轉密文,密文與密文進行比較,判斷是否一致
- 第一個參數(shù)是明文
- 第二個參數(shù)是密鑰
- 第三個參數(shù)是密文
- return 出判斷結果
里面還有一個變量md5key 這個就是我們的密鑰
通過這個密鑰對明文進行加密
使用我們在使用這個方法時
要獲取密鑰可以直接調用這個變量
當然這個密鑰也可以自己設置
這就是我們的MD5加密方法
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Spring項目使用Maven和BCrypt實現(xiàn)修改密碼功能方式
在數(shù)字時代,信息安全尤其是密碼安全至關重要,本文通過實例探討如何在Spring項目中利用Maven和BCrypt實現(xiàn)一個安全的密碼修改功能,我們將從環(huán)境搭建到編寫核心業(yè)務邏輯,再到完成功能測試,確保每一步都遵循最佳安全實踐,通過本文,你將了解到密碼安全的重要性2024-10-10
spring使用aspect注解切面不起作用的排查過程及解決
這篇文章主要介紹了spring使用aspect注解切面不起作用的排查過程及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
深入淺析ArrayList 和 LinkedList的執(zhí)行效率比較
這篇文章主要介紹了ArrayList 和 LinkedList的執(zhí)行效率比較的相關資料,需要的朋友可以參考下2017-08-08

