1.在身份認證過程中往往會涉及加密。如果不加密那麼資料部不安全。shiro內部實現了比較多的雜湊演算法。如md5,sha等。並且提供了加鹽功能,比如「1111」的md5碼為「b59c67bf196a4758191e42f76670ceba」,這個md5碼可以在很多破解**上找到相對應的原密碼。但是如果為「1111」+姓名 那麼找到原密碼的難度會增加。
2.測試md5案例
package com.sxt.shiro;
import org.apache.shiro.crypto.hash.md5hash;
import org.apache.shiro.crypto.hash.******hash;
public
class
md5demo
}
3.在自定義的realm中使用雜湊演算法:
realm的實現:
package com.sxt.realm;
import org.apache.shiro.authc.authenticationexception;
import org.apache.shiro.authc.authenticationinfo;
import org.apache.shiro.authc.authenticationtoken;
import org.apache.shiro.authc.******authenticationinfo;
import org.apache.shiro.authz.authorizationinfo;
import org.apache.shiro.realm.authorizingrealm;
import org.apache.shiro.subject.principalcollection;
import org.apache.shiro.util.bytesource;
/** * 自定義realm的實現,該realm類提供了兩個方法
* dogetauthenticationinfo獲取認證資訊
* dogetauthorizationinfo獲取許可權資訊
* @author lee
* */
public
class
userrealm
extends
authorizingrealm
//完成身份認證,並且返回認證資訊
//如果身份認證失敗返回null
@override
protected authenticationinfo dogetauthenticationinfo
( authenticationtoken token)
throws authenticationexception
}
配置檔案
[main]
credentialsmatcher=org.apache.shiro.authc.credential.hashedcredentialsmatcher
credentialsmatcher.hashalgorithmname=md5
credentialsmatcher.ha****erations=2
userrealm=com.sxt.realm.userrealm
userrealm.credentialsmatcher=$credentialsmatcher
securitymanager.realm=$userrealm
測試類:
package com.sxt.shiro;
import org.apache.shiro.subject.subject;
import org.apache.shiro.securityutils;
import org.apache.shiro.authc.*;
import org.apache.shiro.config.inisecuritymanage***ctory;
import org.apache.shiro.util.factory;
import org.apache.shiro.mgt.securitymanager;
/** * 完成使用者認證demo
* @author lee
* */
public
class
usernamedemo
}catch
(unknownaccountexception e)
catch
(incorrectcredential***ception e)
}}
第五講 雜湊演算法(加密演算法)
1 在身份認證過程中往往會涉及加密。如果不加密那麼資料資訊不安全。shiro內容實現比較多的雜湊演算法。如md5,sha等。並且提供了加鹽功能。比如 1111 的md5碼為 b59c67bf196a4758191e42f76670ceba 這個md5碼可以在很多破解 上找到對應的原密碼。但是如果為 ...
對稱加密演算法 非對稱加密演算法 雜湊雜湊演算法
在實際的操作過程中,我們通常採用的方式是 採用非對稱加密演算法管理對稱演算法的金鑰,然後用對稱加密演算法加密資料,這樣我們就整合了兩類加密演算法的優點,既實現了加密速度快的優點,又實現了安全方便管理金鑰的優點。常用加密演算法概述 常見的加密演算法可以分成三類,對稱加密演算法,非對稱加密演算法和has...
雜湊演算法與加密演算法
那麼,首先要知道,什麼是雜湊 演算法 呢?產生一些資料片段 例如訊息或會話項 的雜湊值的演算法。例如,md5就是一種雜湊演算法。軟體開發中的雜湊函式或雜湊演算法,又稱雜湊函式,英語 hash function,是一種從任何一種資料中建立小的數字 指紋 的方法。所有雜湊函式都有如下乙個基本特性 如果兩...