SpringBoot整合shiro-MD5鹽值加密

為什么要進(jìn)行密碼加密挠蛉?

在我們的日常生活中凭涂,許多人有著在不同網(wǎng)站上使用相同密碼的壞習(xí)慣(包括我也是qaq),假如應(yīng)用程序或服務(wù)器出現(xiàn)漏洞畜号,數(shù)據(jù)被竊取,用戶的明文密碼直接被暴露給黑客缠黍。顯然后果將不堪設(shè)想弄兜。使用密碼加密可以有效地增加黑客破解密碼的難度药蜻,提高安全性。

什么是md5加密和md5鹽值加密替饿?

  • md5加密:
    明文密碼 + md5算法 = 密文密碼
  • md5鹽值加密
    鹽值處理后的明文密碼 + md5算法 = 密文密碼

鹽值可以由開發(fā)者進(jìn)行自定義语泽,這樣密碼被破解的可能性就有了顯著的降低。
下面演示基于SpringBoot框架的shiro實(shí)現(xiàn)MD5鹽值加密

SpringBoot整合shiro-實(shí)現(xiàn)MD5鹽值加密

一视卢、數(shù)據(jù)庫中應(yīng)有一個(gè)字段用于儲(chǔ)存鹽值
數(shù)據(jù)表.png
二踱卵、數(shù)據(jù)表映射的實(shí)體類中應(yīng)有鹽值屬性
package com.pedro.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
    private int id;
    private String username;
    private String password;
    private String perms;
    private String salt;
}

User.java

三、ShiroConfig中設(shè)置加密方式

1据过、設(shè)置加密算法并用@Bean標(biāo)簽注入Spring容器

    //密碼加密算法設(shè)置
    @Bean
    public HashedCredentialsMatcher hashedCredentialsMatcher(){
        HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher();
        //設(shè)置加密方式
        hashedCredentialsMatcher.setHashAlgorithmName("md5");
        //設(shè)置散列的次數(shù)
        hashedCredentialsMatcher.setHashIterations(2);
        return hashedCredentialsMatcher;
    }

2惋砂、realm中設(shè)置開啟加密

    @Bean
    public UserRealm userRealm(){
        //注入realm
        UserRealm userRealm = new UserRealm();
        //注入密碼加密
        userRealm.setCredentialsMatcher(hashedCredentialsMatcher());

        return userRealm;
    }
四、修改realm類中的認(rèn)證方法
UserRealm.java

那么注冊(cè)用戶時(shí)如何對(duì)用戶設(shè)置的密碼進(jìn)行加密呢绳锅?

一西饵、可以準(zhǔn)備一個(gè)用于加密的工具方法
public class PasswordGenerateUtil {

    public static String getPassword(String username, String password, String salt, int hashTimes) {
        //利用傳入的信息進(jìn)行加密,得到密文
        Md5Hash md5Hash = new Md5Hash(password, username + salt, hashTimes);
        //返回密文
        return md5Hash.toString();
    }

}        
二鳞芙、注冊(cè)用戶時(shí)注意
  • 向數(shù)據(jù)庫中存入用戶信息時(shí)調(diào)用工具方法眷柔,加密密碼再存入
  • 存入用戶信息時(shí)候記得把鹽值也存進(jìn)去
String salt1 = Long.toString(System.currentTimeMillis());

注意事項(xiàng):

  • 加密密碼時(shí)設(shè)置的鹽值處理方式必須和realm中存入info時(shí)的鹽值處理方式設(shè)置得一樣
  • 加密時(shí)的散列次數(shù)必須和ShiroConfig中加密算法的bean中設(shè)置的一樣

2020-5-24

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市原朝,隨后出現(xiàn)的幾起案子驯嘱,更是在濱河造成了極大的恐慌,老刑警劉巖喳坠,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鞠评,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡壕鹉,警方通過查閱死者的電腦和手機(jī)剃幌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來御板,“玉大人锥忿,你說我怎么就攤上這事〉±撸” “怎么了敬鬓?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)笙各。 經(jīng)常有香客問我钉答,道長(zhǎng),這世上最難降的妖魔是什么杈抢? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任数尿,我火速辦了婚禮,結(jié)果婚禮上惶楼,老公的妹妹穿的比我還像新娘右蹦。我一直安慰自己诊杆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布何陆。 她就那樣靜靜地躺著晨汹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贷盲。 梳的紋絲不亂的頭發(fā)上淘这,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音巩剖,去河邊找鬼铝穷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛佳魔,可吹牛的內(nèi)容都是我干的曙聂。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼吃引,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼筹陵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起镊尺,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎并思,沒想到半個(gè)月后庐氮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宋彼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年弄砍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片输涕。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡音婶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出莱坎,到底是詐尸還是另有隱情衣式,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布檐什,位于F島的核電站碴卧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏乃正。R本人自食惡果不足惜住册,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瓮具。 院中可真熱鬧荧飞,春花似錦凡人、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至条获,卻和暖如春忠荞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帅掘。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工委煤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人修档。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓碧绞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親吱窝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子讥邻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349