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...