1. 為什麼使用 md5 鹽值加密:
2. 如何做到:
1). 在 dogetauthenticationinfo 方法返回值建立 ******authenticationinfo 物件的時候, 需要使用******authenticationinfo(principal, credentials, credentialssalt, realmname) 構造器
2). 使用 bytesource.util.bytes() 來計算鹽值.
3).鹽值需要唯一: 一般使用隨機字串或 user id
4). 使用 new ******hash(hashalgorithmname, credentials, salt, ha****erations); 來計算鹽值加密後的密碼的值.
1. 如何把乙個字串加密為 md5
2. 替換當前 realm 的 credentialsmatcher 屬性. 直接使用 hashedcredentialsmatcher 物件, 並設定加密演算法即可.
密碼的比對:
通過 authenticatingrealm 的 credentialsmatcher 屬性來進行的密碼的比對!
產生乙個md5加密後的密碼public static void main(string args)
class="com.atguigu.shiro.realms.shirorealm">
class="org.apache.shiro.authc.credential.hashedcredentialsmatcher">
protected authenticationinfo dogetauthenticationinfo(authenticationtoken token) throws authenticationexception
//5. 根據使用者資訊的情況, 決定是否需要丟擲其他的 authenticationexception 異常.
if("monster".equals(username))
//6. 根據使用者的情況, 來構建 authenticationinfo 物件並返回. 通常使用的實現類為: ******authenticationinfo
//以下資訊是從資料庫中獲取的.
//1). principal: 認證的實體資訊. 可以是 username, 也可以是資料表對應的使用者的實體類物件.
object principal = username;
//2). credentials: 密碼.
object credentials = null;
//"fc1709d0a95a6be30bc5926fdb7f22f4";
if("admin".equals(username))else if("user".equals(username))
//3). realmname: 當前 realm 物件的 name. 呼叫父類的 getname() 方法即可
string realmname = getname();
//4). 鹽值.
bytesource credentialssalt = bytesource.util.bytes(username);
******authenticationinfo info = null;
//new ******authenticationinfo(principal, credentials, realmname);
info = new ******authenticationinfo(principal, credentials, credentialssalt, realmname);
return info;
}
C 筆記(2)md5加密
class md5 md5 md5hash md5.create 將輸入字串轉換為位元組陣列並計算雜湊資料 byte data md5hash.computehash encoding.utf8.getbytes str 建立乙個 stringbuilder 來收集位元組並建立字串 stringbu...
Shiro密碼的MD5加密 MD5鹽值加密
用md5加密演算法後,前台使用者輸入的字串如何使用md5加密,需要做的是將當前的realm 的credentialsmatcher屬性,替換為md5credentialsmatcher 由於md5credentialsmatcher已經過期了,推薦使用hashedcredentialsmatcher...
Shiro 認證憑據 密碼 加密的那些事
一般來說,實際專案中隱私資料沒有在網路上明文跑路,都會採用不同的加密演算法。shiro中的認證憑據通常也會採用演算法進行加密。該介面只有乙個方法,docredentialsmatch,就是用來進行密碼比較的!原始碼如下 public inte ce credentialsmatcher if the...