shiro(五)雜湊演算法(加密演算法)

2021-09-25 17:21:59 字數 2348 閱讀 6963

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,是一種從任何一種資料中建立小的數字 指紋 的方法。所有雜湊函式都有如下乙個基本特性 如果兩...