shiro框架---shiro配置使用者名稱和密碼的注意
接上一篇文章shiro框架—shiro配置介紹(二)
專案已分享到GitHub
上,如果需要的可以看下,springboot+shiro專案Git下載地址。
關於上一篇中,寫出了關於shiro在springboot專案的配置步驟,還有幾個簡單的注意點沒有說到。
1、使用者名稱保證唯一性
這個應該很容易理解,對於一個系統來說,使用者名稱是唯一的,不可重複,如果我們在註冊使用者時,比如隨便起了一個使用者名稱doudouchong
這樣的使用者。合理的方式是,在輸入註冊使用者名稱後,頁面應該馬上呼叫一個介面,即查詢當前使用者名稱是否佔用,如果佔用應該提示已註冊。在這樣的前提下,就能保證使用者名稱的唯一了。
2、密碼入庫要用暗文
在註冊使用者時,比如我們將註冊的使用者doudouchong
密碼為123
,這樣的資訊儲存到資料庫使用者表中,但是合理的情況下,你不能把這個密碼明文123
儲存到資料庫中,你應該把暗文儲存到資料庫中,密碼加密後的暗文,可以有多種方法來做到,比如我們專案中是用的下邊的這個類:
package microservice.fpzj.core.util;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;
public class PasswordUtil {
private String algorithmName = "md5"; //指定雜湊演算法為MD5,還有別的演算法如:SHA256、SHA1、SHA512
private int hashIterations = 2; //雜湊迭代次數 md5(md5(pwd)): new Md5Hash(pwd, salt, 2).toString()
public void setAlgorithmName(String algorithmName) {
this.algorithmName = algorithmName;
}
public void setHashIterations(int hashIterations) {
this.hashIterations = hashIterations;
}
//加密:輸入明文得到密文
public String encodePassword(String pwd, String salt) {
//user.setSalt(randomNumberGenerator.nextBytes().toHex());
String newPassword = new SimpleHash(
algorithmName,
pwd,
ByteSource.Util.bytes(salt),
hashIterations).toHex();
return newPassword;
}
public boolean verifyPassword(String targetPassword, String pwd, String salt){
String newPassword = this.encodePassword(targetPassword, salt);
if(newPassword.equals(pwd)){
return true;
}else{
return false;
}
}
}
以上的 encodePassword
方法,即是加密密碼明文的方法,該方法的引數除了明文密碼,還有salt
,這個是鹽,通過這個鹽,可以對密碼進一步加密,而這個鹽,這裡其實使用的是userid
,是通過UUID
獲取的一個隨機的字串,作為使用者表記錄主鍵userid
的值,然後它們兩個通過encodePassword
方法生成密碼暗文,大體意思如下圖所示:
通過傳入123
和生成的uuid
值d9970477fb2349b984b1c98b8e559a91
兩個引數,呼叫encodePassword
方法,即生成了密碼暗文b7331bcddf29abef3a079ea0cb678f0e
,然後將該暗文作為使用者表中的密碼值儲存到使用者表中即可。
3、密碼驗證的邏輯
由於密碼存入到使用者表中是暗文,所以在驗證中,不要忘記首先將使用者輸入的密碼123
轉換成暗文,然後再雨資料庫使用者表中儲存的密碼值進行比較。方法也是呼叫第二步中的encodePassword
,但是因為這個方法還需要鹽,即salt
,而這個salt
值又來自於使用者表中當前使用者名稱的主鍵userid
值,所以,還要根據使用者名稱查詢到使用者物件,取出userid
值,作為salt
,然後呼叫encodePassword
方法,這樣才能轉換成真正的密碼暗文,如果salt
不對,生成的密碼暗文肯定是不對的。
相關推薦
shiro框架---shiro配置使用者名稱和密碼的注意
接上一篇文章shiro框架—shiro配置介紹(二) 專案已分享到GitHub上,如果需要的可以看下,springboot+shiro專案Git下載地址。 關於上一篇中,寫出了關於shiro在springboot專案的配置步驟,還有幾個簡單的注意點沒
SpringBoot 整合 Shiro框架 簡單配置
SpringBoot整合Shiro框架 pom.xml新增 <!-- shiro框架--> <dependency> <
shiro框架---shiro配置介紹(二)
關於shiro在springboot的配置,共有四個基本配置檔案主要的檔案有四個ShiroConfig 、RetryLimitHashedCredentialsMatcher 、UserRealm 、MShiroFilterFactoryBean
Tomcat配置用戶名和密碼
cati 點擊 自帶 配置 情況 http 瀏覽器 ati dmi 1.在瀏覽器輸入http://localhost:8080/,打開Tomcat自帶的默認主頁面,右側有“administration”“documentation”等模塊。選擇“administration
3周第1次課 linux和windows互傳文件 用戶配置文件和密碼配置文件 用戶組管理 用戶管理
windows inux 互傳文件 一、linux和windows互傳文件1.Linux 傳文件到 windows ##此辦法只適合使用(xshell securecrt)工具的用戶[root@centos701 ~]# yum install -y lrzsz ##下載支
linux和windows互傳文件, 用戶配置文件和密碼配置文件, 用戶組管理, 用戶管理
linuxlinux和windows互傳文件用戶配置文件和密碼配置文件用戶組管理用戶管理linux和windows互傳文件yum install -y lrzsz用戶配置文件和密碼配置文件root:x:0:0:root:/root:/bin/bashserver:x:1000:1000::/home/serv
2.27Linux和windows互傳;3.1用戶配置文件和密碼配置文件;3.2/3.3用戶組用戶
用戶組管理 用戶管理 2.27 Linux和windows互傳文件1. yum安裝 lrzsz:[root@hao-01 ~]# yum install -y lrzsz2. Linux上的文件,傳輸給windows下:sz 跟文件[root@hao-01 ~]# sz 1.txt3. windows
2.27linux和windows互傳文件 3.1 用戶配置文件和密碼配置文件 3.2 用戶組管理
用戶 用戶組 2.27linux和windows互傳文件1、linux和window互傳文件linux把文件傳遞到windows上使用szwindow文件傳遞到linux使用rz3.1 用戶配置文件和密碼配置文件1、用戶配置文件和密碼配置文件密碼文件,也是用戶的核心文件用戶名開頭,一共分為7個字段;r
用戶配置文件和密碼配置文件、用戶組管理、用戶管理、usermod命令
51cto 通用 普通 sbin png root tle 用戶名 加密 用戶配置文件和密碼配置文件用戶配置文件:/etc/passwd/etc/passwd 用戶密碼文件,當我們增加一個用戶時,文件就會增加相應的一行內容。第一個字段:為用戶名第二個字段:該
十一、Linux和Windows互傳文件、用戶配置文件和密碼配置文件、用戶組管理、用戶管理
天才 install gin dd命令 建立 我們 log 永遠 name 十一、Linux和Windows互傳文件、用戶配置文件和密碼配置文件、用戶組管理、用戶管理一、Linux和Windows互傳文件安裝軟件包:yum install -y lrzsz(xshell,s
文件互傳,用戶配置文件和密碼配置文件,用戶以及用戶組管理
不同的 ssl 註釋 cal ger 生命周期 remove 安裝 aaa 與windows互傳文件如果我們要互傳文件,先要安裝一個工具,lrzsz。rz是從windiws中下載文件到linux,sz是從linux中上傳文件到windows的。 linux只一個多用戶的操作
用戶配置文件和密碼配置文件
字段 water def 用戶名 配置文件 shell 分享圖片 uid pro 第一段用戶名第二段密碼第三段UID第四段GID第五段解釋說明第六段家目錄第七段shellid aming 查看id 第一個字段是用戶名第二段是密碼第三段表示上次更改密碼的時間,從1970年1月
第三周第一節、linux和windows互傳文件,用戶配置文件和密碼配置文件、用戶及用戶組管理
2018-04-02Linux和Windows互傳文件 samba、ftp服務都可以實現Linux和Windows文件傳輸,平時我們使用的Xshell中也有一個命令可以實現Linux和Windows文件互傳:首先我們要安裝軟件包:[root@a3 ~]# yum -y install lrzsz從Window
三周第一次課 2.27linux和windows互傳文件 3.1 用戶配置文件和密碼配置文件 3.2
學習 打卡三周第一次課2.27linux和windows互傳文件3.1 用戶配置文件和密碼配置文件3.2 用戶組管理3.3 用戶管理 2.27linux和windows互傳文件首先要安裝lrzsz 這個包 sz 文件名 把文件傳送到win系統上 可以在win中指定目錄 rz 把win系統上的文件傳送到l
Linux和windows互傳文件,用戶配置文件和密碼配置文件,用戶及組管理
258866Linux和windows互傳文件可以用工具xshell或者securecrt,·然後先安裝一個包:lrzsz··用命令yum install -y lrzsz·安裝完畢之後,就可以使用傳輸命令了,比如,我們想把Linux下的文件傳輸到Windows,可以用sz filename即可:sz y.t
linux和windows互傳文件 用戶配置文件和密碼配置文件 用戶組/用戶管理
用戶/用戶組管理一、linux和windows互傳文件(前提是:必須使用XShell或securecrt,不能使用PuTTY) yum install -y lrzsz //linux與windows互傳文件需要在linux上yum安裝lrzsz sz 文件名 //linux往window
Linux-互傳文件、用戶配置文件和密碼配置文件、用戶組管理、用戶管理
bae ash 提醒 cto 默認 技術分享 shell 刪除 距離 xshell securecrt 支持,putty 不支持yum install -y lrzszrz:從win上傳sz:從linux下載分為7段root:x:0:0:root:/root:/
樹莓派 | 修改樹莓派3熱點的名稱和密碼
開篇 在網上找了很久也沒找到怎麼修改熱點的名稱和密碼有關的資料,恰好自己發現了hostapd,此篇獻給像我這樣的小白。 教程 前提是使用的Yahboom_raspberrypi_8G_Router.img這個映象,一個自帶熱點的映象。 一、設定樹莓派3熱點的名稱和密
Python之——獲取電腦連線過的所有wifi名稱和密碼
不多說,上程式碼: # -*- coding: UTF-8 -*- import os import sys reload(sys) sys.setdefaultencoding('utf-8') # 定義一個函式checkWIFI,獲取電腦連線過的所有wifi名
使用Apache配置需要使用者名稱和密碼認證才能訪問的網站
說明:.htaccess檔案中常用的配置選項有以下幾個: 1) AuthName:定義提示資訊,使用者訪問時提示資訊會出現在認證的對話方塊中 2) AuthType:定義認證型別,在HTTP1.0中,只有一種認證型別:basic。在HTTP1.1中有幾種認證型別,如:MD5 3) AuthUserF