Shiro 4 Shiro密碼加密

2021-08-30 06:28:10 字數 1404 閱讀 8724

"userrealm"

class

="cn.qecode.realm.userrealm"

>

name

="credentialsmatcher"

>

class

="org.apache.shiro.authc.credential.hashedcredentialsmatcher"

>

name

="hashalgorithmname"

value

="md5"

>

property

>

name

="ha****erations"

value

="2"

>

property

>

bean

>

property

>

bean

>

這裡配置了credentialsmatcher,那麼userrealm在對密碼進行匹配時,會先對使用者輸入的密碼進行兩次的md5加密,再與資料庫中的密碼匹配.

一般情況下,我們不會直接對密碼進行md5加密,畢竟有的人會把密碼設得極為簡單,比如123,111之類,而這類密碼就算是用md5加密後,還是很容易就會被破解的,所以我們在加密的時候會加上鹽值.

鹽值:其實就是乙個字串,一般是乙個使用者特有的屬性,如email.

加鹽:在加密的時候,不是對密碼進行加密,而是對密碼+鹽值進行加密.

//用郵箱作為鹽值

bytesource credentialssalt = bytesource.util.

bytes

(user.

getemail()

);******authenticationinfo info =

new******authenticationinfo

(user,user.

getpassword()

,getname()

);info.

setcredentialssalt

(credentialssalt)

;

這樣shiro在驗證的時候就會對密碼加鹽,然後進行兩次md5加密,再與資料庫中的密碼進行匹配.

注意

當然,因為我們在驗證的時候使用了md5加密,所以我們在新增密碼到資料庫的時候,也要對密碼進行加密.而且當使用者的email改變的時候,記得也要重新修改密碼.

string password =

newmd5hash

(password,email,2)

.tostring()

;

Shiro 之一 密碼加密

在專案前期開發階段,密碼採用明碼儲存。但是一旦程式部署在生產環境,明碼儲存密碼是非常不安全的,必須對密碼進行加密運算。加密主要分為兩種 可逆運算和不可逆運算 1 可逆運算是通過乙個秘鑰,對一段字串加密,同樣可以通過這個秘鑰進行解密運算 2 不可逆運算的加密對一段字串進行加密,但是不能還原成原來的字串...

Shiro學習筆記之Shiro加密

雜湊演算法一般用於生成資料的摘要資訊,是一種不可逆的演算法,一般適合儲存密碼之類的資料,常見的雜湊演算法如 md5 sha 等。一般進行雜湊時最好提供乙個 雜訊,這樣可以使破解密碼的難度變大。以下是md5加密演算法的乙個演示 public class tes 5 此介面提供加密密碼和驗證密碼的功能。...

shiro使用者加密預設方式 shiro加密演算法

第一節的時候我介紹過,shiro有很多加密演算法,如md5和sha,而且還支援加鹽,使得密碼的解析變得更有難度,更好的保障了資料的安全性。這裡我們要介紹的是md5演算法,因為比較常用。首先我們來看看md5演算法的各種實現方式 packagecom.wujianwu.test importorg.ap...