Shiro之加密加鹽及憑證驗證

2021-08-21 05:29:52 字數 3403 閱讀 9932

md5加密在shiro中使用極其簡單:

shiro中工具類:******hash

//******hash構造器

******hash(string algorithmname, object source, object salt, int ha****erations)

引數解釋:

引數名引數解釋

引數資料型別

algorithmname

加密型別[md5、md2、sha1、sha256等]

string

source

要加密的物件

object

salt

加鹽物件,如果不打算加密時進行加鹽則傳null

object

ha****erations

對目標物件加密次數,次數越多可靠性越高。同時越複雜

int

使用示例:

//******hash加密

******hash ******hash2 = new ******hash("md5", "123456", salt, 0);

//輸出加密後結果[直接輸出物件,或呼叫tostring方法後就是加密結果]

system.out.println(******hash2);

shrio中可以通過修改實現了realm介面的自定義realm中的credentialsmatcher屬性所對應的證書匹配器來使用加密設定。常用的是其實現類hashedcredentialsmatcher物件,在整合了spring之後spring的配置中如下:

id="jdbcrealm"

class="com.heiketu.shiro.realm.shirorealm">

name="credentialsmatcher">

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

name="hashalgorithmname"

value="md5">

property>

bean>

property>

bean>

id="securitymanager"

class="org.apache.shiro.web.mgt.defaultwebsecuritymanager">

name="cachemanager"

ref="cachemanager" />

name="realm"

ref="jdbcrealm" />

bean>

id="lifecyclebeanpostprocessor"

class="org.apache.shiro.spring.lifecyclebeanpostprocessor" />

class="org.springframework.aop.framework.autoproxy.defaultadvisorautoproxycreator"

depends-on="lifecyclebeanpostprocessor" />

class="org.apache.shiro.spring.security.interceptor.authorizationattributesourceadvisor">

name="securitymanager"

ref="securitymanager" />

bean>

id="secureremoteinvocationexecutor"

class="org.apache.shiro.spring.remoting.secureremoteinvocationexecutor">

name="securitymanager"

ref="securitymanager" />

bean>

id="shirofilter"

class="org.apache.shiro.spring.web.shirofilte***ctorybean">

name="securitymanager"

ref="securitymanager" />

name="loginurl"

value="/login.jsp" />

name="successurl"

value="/success.jsp" />

name="unauthorizedurl"

value="/unauthorized.jsp" />

name="filterchaindefinitions">

/login.jsp = anon

/shirorequest/login = anon

/shiro/logout = logout

/** = authc

value>

property>

bean>

注:如果自定義realm是繼承自authenticatingrealm實現類,則需要實現:authenticationinfo dogetauthenticationinfo(authenticationtoken arg0)抽象方法。

shiro中dogetauthenticationinfo方法的示例**如下:

@override

protected authenticationinfo dogetauthenticationinfo(authenticationtoken arg0) throws authenticationexception

//principal

object principal = username;

//密碼:加鹽

bytesource bytes = bytesource.util.bytes("admin");

string pass = new ******hash("md5", "123456", bytes, 0).tostring();

string name2 = getname();

//不加鹽的設定

//authenticationinfo info = new ******authenticationinfo(principal, pass, name2);

authenticationinfo info = new ******authenticationinfo(username, pass, bytes, getname());

return info;

}

Shiro學習筆記之Shiro加密

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

MD5加密及加鹽salt

1.不加salt時每次生成的都不一樣,shane ubuntu newdisk4 qtcreater zlg qt 4.8.6 qt everywhere opensource src 4.8.6 examples desktop screenshot openssl passwd 1 123 1 ...

安全防護之加鹽慢雜湊加密

彩虹表的反推,使md5加密也不安全了,所以一些的程式設計師想出了個辦法,即使使用者的密碼很短,只要我在他的短密碼後面加上一段很長的字元,再計算 md5 那反推出原始密碼就變得非常困難了。加上的這段長字元,我們稱為鹽 salt 通過這種方式加密的結果,我們稱為加鹽 hash。比如 md5 md5 pa...