Java如何實(shí)現(xiàn)密碼加密
在查詢時(shí),我們?nèi)绻獙?duì)用戶的登錄信息進(jìn)行加密,通常會(huì)將其密碼進(jìn)行加密.
1) 可以借助spring框架工具類DigestUtils
2) 也可以使用shiro框架來(lái)實(shí)現(xiàn)
//保存用戶自身信息
//1構(gòu)建一個(gè)鹽值對(duì)象
String salt=UUID.randomUUID().toString();//隨機(jī)字符串
//2對(duì)密碼進(jìn)行鹽值加密(加密算法MD5-特點(diǎn):不可逆,相同內(nèi)容加密結(jié)果也相同)
//2.1加密方式1(借助spring框架工具類DigestUtils)
//String newPassword=DigestUtils.md5DigestAsHex((salt+entity.getPassword()).getBytes());
//2.2加密方式2(借助shiro框架中的API)
SimpleHash sh=new SimpleHash("MD5", entity.getPassword(), salt, 1);
String newPassword=sh.toHex();
System.out.println("newPassword="+newPassword);
entity.setSalt(salt);
entity.setPassword(newPassword);
以上就是兩者方式分別使用,
注意:
鹽值salt:UUID.randomUUID().toString();生成的是一個(gè)隨機(jī)字符串.
SimpleHash sh=new SimpleHash("MD5", entity.getPassword(), salt, 1);
這行shiro框架提供的加密中,
第一個(gè)參數(shù)"MD5"為加密算法,其特點(diǎn):不可逆(只能加密不能解密),但是相同內(nèi)容加密結(jié)果也相同;
第二個(gè)參數(shù)source,代表原密碼;
第三個(gè)參數(shù)salt,就是我們先生成的鹽值隨機(jī)數(shù);
第四個(gè)參數(shù)1,代表加密次數(shù),我們這里只加密了一次.
entity.setSalt(salt); entity.setPassword(sh.toHex());
加密處理過(guò)后,我們?cè)賹⑿滦薷牡拿艽a轉(zhuǎn)換為16進(jìn)制數(shù)賦值給對(duì)象,salt的傳遞看你對(duì)象屬性的設(shè)置.
然后再根據(jù)新的對(duì)象內(nèi)的數(shù)據(jù)進(jìn)行操作即可.
以上就是Java如何實(shí)現(xiàn)密碼加密的詳細(xì)內(nèi)容,更多關(guān)于Java密碼加密的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java 實(shí)現(xiàn)單鏈表逆轉(zhuǎn)詳解及實(shí)例代碼
這篇文章主要介紹了java 實(shí)現(xiàn)單鏈表逆轉(zhuǎn)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
Mybatis分頁(yè)查詢主從表的實(shí)現(xiàn)示例
本文主要介紹了Mybatis分頁(yè)查詢主從表的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09
springboot如何通過(guò)@PropertySource加載自定義yml文件
這篇文章主要介紹了springboot如何通過(guò)@PropertySource加載自定義yml文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
使用SpringCache進(jìn)行緩存數(shù)據(jù)庫(kù)查詢方式
這篇文章主要介紹了使用SpringCache進(jìn)行緩存數(shù)據(jù)庫(kù)查詢方式,具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Spring事務(wù)失效之常見(jiàn)場(chǎng)景分析
這篇文章主要介紹了Spring事務(wù)失效之常見(jiàn)場(chǎng)景,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Java面向?qū)ο笤O(shè)計(jì)原則之迪米特法則介紹
迪米特法則解決類與類之間耦合度問(wèn)題,如果類A調(diào)用了B類的某一個(gè)方法,則這兩個(gè)類就形成了一種緊耦合的方式,當(dāng)B類這個(gè)方法發(fā)生變化時(shí),一定會(huì)影響A類的執(zhí)行結(jié)果。迪米特法則要求每一個(gè)類盡可能少的與其他類發(fā)生關(guān)系2023-02-02

