1. 程式人生 > >shiro框架---shiro配置使用者名稱和密碼的注意

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 和生成的uuidd9970477fb2349b984b1c98b8e559a91 兩個引數,呼叫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次課 linuxwindows互傳文件 用戶配置文件密碼配置文件 用戶組管理 用戶管理

windows inux 互傳文件 一、linux和windows互傳文件1.Linux 傳文件到 windows ##此辦法只適合使用(xshell securecrt)工具的用戶[root@centos701 ~]# yum install -y lrzsz ##下載支

linuxwindows互傳文件, 用戶配置文件密碼配置文件, 用戶組管理, 用戶管理

linuxlinux和windows互傳文件用戶配置文件和密碼配置文件用戶組管理用戶管理linux和windows互傳文件yum install -y lrzsz用戶配置文件和密碼配置文件root:x:0:0:root:/root:/bin/bashserver:x:1000:1000::/home/serv

2.27Linuxwindows互傳;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.27linuxwindows互傳文件 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 用戶密碼文件,當我們增加一個用戶時,文件就會增加相應的一行內容。第一個字段:為用戶名第二個字段:該

十一、LinuxWindows互傳文件、用戶配置文件密碼配置文件、用戶組管理、用戶管理

天才 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月

第三周第一節、linuxwindows互傳文件,用戶配置文件密碼配置文件、用戶及用戶組管理

2018-04-02Linux和Windows互傳文件 samba、ftp服務都可以實現Linux和Windows文件傳輸,平時我們使用的Xshell中也有一個命令可以實現Linux和Windows文件互傳:首先我們要安裝軟件包:[root@a3 ~]# yum -y install lrzsz從Window

三周第一次課 2.27linuxwindows互傳文件 3.1 用戶配置文件密碼配置文件 3.2

學習 打卡三周第一次課2.27linux和windows互傳文件3.1 用戶配置文件和密碼配置文件3.2 用戶組管理3.3 用戶管理 2.27linux和windows互傳文件首先要安裝lrzsz 這個包 sz 文件名 把文件傳送到win系統上 可以在win中指定目錄 rz 把win系統上的文件傳送到l

Linuxwindows互傳文件,用戶配置文件密碼配置文件,用戶及組管理

258866Linux和windows互傳文件可以用工具xshell或者securecrt,·然後先安裝一個包:lrzsz··用命令yum install -y lrzsz·安裝完畢之後,就可以使用傳輸命令了,比如,我們想把Linux下的文件傳輸到Windows,可以用sz filename即可:sz y.t

linuxwindows互傳文件 用戶配置文件密碼配置文件 用戶組/用戶管理

用戶/用戶組管理一、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