1. 程式人生 > >shiro怎麼對加密有後的密碼進行比對

shiro怎麼對加密有後的密碼進行比對

那麼具體是怎麼工作的?

1,既然shiro會把密碼來進行比對,當然會呼叫 UserNamePasswordkToken 中的 getPassword() 方法了。在該方法中打上斷點,往前跟蹤一下即可。     2,開啟debug模式,跟蹤發現 org.apache.shiro.authc.credential.SimpleCredentialsMatcher 類進行密碼的比對     3,繼續跟蹤,發現我們自定義Realm的父類方法呼叫了 CrendebtialsMatcher元件 進行密碼比對     CrendentialsMatcher元件(憑證匹配器)作用     1,用來進行密碼比對。     2,用來對密碼進行加密。     3,shiro提供了該元件介面的很多實現類,用於不同型別的密碼加密。          常用的加密實現類為:HashedCrendentialsMatcher
。     4,替換當前 Realm 的 crendentialsMatcher 屬性,直接使用 HasedCrendentialsMatcher 物件,並設定加密演算法即可。結論:     ①通過 AuthenticatingRealm 的 CrendentialsMatcher 屬性來進行的密碼的比對。     ②指定具體的 CrendentialsMatcher 介面的實現類來設定加密演算法,鹽值和迴圈加密次數。     ③如果兩個使用者擁有相同的原始密碼,那麼加密後的資料也是一樣的,這還是有點安全隱患的,所以鹽值最好設定為一個使用者的唯一值(一般採用使用者名稱)。     ④在自定義Realm的認證方法(doAuthenticationInfo方法),返回的SimpeAuthenticationInfo物件時,需要採用帶有ByteSource引數的建構函式來構建物件。          ByteSource物件可以採用ByteSource.Util.byte(String UserID)
獲取;     ⑤使用 new SimpleHash(hashAlgorithmName,salt,hashIterations); 來計算加鹽後的密碼值。

相關推薦

shiro怎麼加密密碼進行

那麼具體是怎麼工作的?1,既然shiro會把密碼來進行比對,當然會呼叫 UserNamePasswordkToken 中的 getPassword() 方法了。在該方法中打上斷點,往前跟蹤一下即可。     2,開啟debug模式,跟蹤發現 org.apache.shiro.

C語言實現輸入的密碼與設定密碼進行,輸入密碼可以任意輸入。

int checkPasswd( char *src,int src_length, char * target,int target_length){ int i,j;int isOk;//引數檢測

shiro密碼密碼的MD5加密,MD5鹽值加密,多個Relme

有具體問題的可以參考之前的關於shiro的博文,關於shiro的博文均是一次工程的內容     密碼的比對   通過AuthenticatingRealm的CredentialsMatcher方法 密碼的加密,主要是在CredentialsMat

li標籤中,前部分標籤左齊,部分標籤右

用了網上的方法都沒有實現,下面用了span在標籤 <html> <head> <meta http-equiv="Content-Type" content="te

shiro 忘記加密密碼怎麽辦?

static algorithm 怎麽 忘記 密文 文件 int 加密 args shiro 權限引用時用以前的代碼框架 發現忘記加密後的密碼: 解決:下面基於配置文件,將新的密碼密文替換以前的即可 public static void main(String[]

JMeter學習筆記3:JSR223 PreProcessor前置處理器密碼進行RSA加密

在網站中密碼往往不是明文傳送的,其中RSA加密方式,前臺Javascript指令碼對密碼進行加密,然後傳送加密後密碼進行伺服器驗證。 1、首先明白網站加密邏輯 網站部分程式碼如下: //與後臺互動獲取公鑰 function getPublicKey() {

使用者的密碼進行md5技術的加密

一般來說,做專案時,在使用者模組裡,對使用者的密碼都是要進行加密的,這樣在資料庫表中看到的也不是明文密碼。而是經過加密後的密碼。在這裡,我就介紹一種md5的加密方式。雖然現在這種加密方式也並不安全了(因為可以使用”md5線上解密”來得到密碼)。但是,也可以寫著練習一下。現在的加密技術推薦可以

使用Bcrypt密碼進行加密與解密驗證

文件加密 omd pwd sign nbsp lse 結果 即使 yar Bcrypt是一個跨平臺的文件加密工具。 為了保護用戶的明文密碼不被泄露,一般會對密碼進行單向不可逆加密——哈希。 而Bcrypt恰恰就做到這一點,通過Bcrypt加密的明文密碼即使解密也不是真的“解

shiro 如何使用者登入密碼進行校驗的

看下官方文件都有,SimpleAuthenticationInfo(Object principal, Object credentials, String realmName),這裡principal用於標識使用者,比如使用者賬號,credenti

使用MD5明文密碼進行加密

通常情況下,我們不希望任何人知道我們的密碼。 當我們建立了使用者以後,我們的個人資訊將會儲存在伺服器資料庫中,如果有人可以訪問資料庫,便可以輕易的拿到我們的使用者名稱和密碼等一系列重要資料。為防止這種

Web專案中配置檔案中的密碼進行加密(資料庫連線密碼

Web專案的如配置檔案applicationContext.xml檔案中,如資料庫連線的使用者密碼資訊的加密。 我們平時直接寫的專案配置是這樣的: <bean id="dataSource" class="org.apache.commons.dbcp.B

登入記住使用者名稱和密碼使用者名稱和密碼進行加密和解密

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquer

用java密碼進行MD5加密

所謂MD5,即"Message-Digest Algorithm 5(資訊-摘要演算法)",它由MD2、MD3、MD4發展而來的一種單向函式演算法(也就是HASH演算法),它是國際著名的公鑰加密演算法標準RSA的第一設計者R.Rivest於上個世紀90年代初開發出來的。MD

前端對稱加密--js使用者名稱密碼進行DES加密

週末在家裡整理一下之前寫的網站中對登入的使用者名稱和密碼進行加密的過程。 在網上有很多DES加密的js版,有一些是用java解密不成功的,今天分享一個前端用js的DES加密,後端使用java版的DES解密 因為要在後臺進行解密,所以採用對稱加密。 對稱加密

登山-C#-密碼進行加密儲存

由於明文儲存密碼會有很大的風險,所以一直想用加密的方式進行儲存。 看了網上一些文章後,決定選擇MD5加隨機salt的方式進行加密。 基本的思想就是在建立使用者是隨機產生一個salt字串。然後用密碼拼接salt字串,然後用MD5對拼接後的字串進行加密存入資料庫,這樣就可以避免

Cookie-Parser是怎樣解析簽名的cookie的(同一時候cookie和cookie-signature進行說明)

特殊 -c decode 這一 由於 spl str array one 第一步:我們來學習一下cookie-signature: var cookie=require('./index'); var val = cookie.sign(

利用Needleman–Wunsch算法進行DNA序列全局

gap aac print man sat odi sequence org 命令 生物信息學原理作業第二彈:利用Needleman–Wunsch算法進行DNA序列全局比對。 具體原理:https://en.wikipedia.org/wiki/Needleman%E2%8

Dijkstra 算法,用於權圖進行搜索,找出圖中兩點的最短距離

我們 全部 保持 blog 短路徑 找到 gif動畫 信息 初始 Dijkstra 算法,用於對有權圖進行搜索,找出圖中兩點的最短距離,既不是DFS搜索,也不是BFS搜索。 把Dijkstra 算法應用於無權圖,或者所有邊的權都相等的圖,Dijkstra 算法等同於BFS搜

megacc的進行多序列

.exe spec ase update settings where cati ply -- 1.軟件的安裝: 網站:http://www.megasoftware.net/ windows上安裝,下載windows-command line(cc)版本的,格式為zip,

基於C# 的RSA 前端JS加密進行解密。

logs key 網絡 base64 text message 進制 rtp pts 前端代碼 引用 js : http://passport.cnblogs.com/scripts/jsencrypt.min.js通過接口從服務端獲取隨機一對密鑰串,主鍵為Token