spring security使用雜湊加密的密碼

2022-04-30 16:03:14 字數 2731 閱讀 6766

之前我們都是使用md5md5passwordencoder

或者shashapasswordencoder

的雜湊演算法進行密碼加密,在spring security中依然使用只要指定使用自定義加密演算法就行,現在推薦spring使用的bcryptbcryptpasswordencoder

,一種基於隨機生成salt的根據強大的雜湊加密演算法。

首先我們使用spring提供的加密方法對密碼 123456 進行加密:

1、使用md5加密:

package

com.petter.util;

import

org.springframework.security.authentication.encoding.md5passwordencoder;

/***

@author

hongxf

* @since

2017-04-11 10:52 */

public

class

md5encodergenerator

}

修改資料庫中的使用者hxf密碼為 7cbdf569746dd62484eb25a55b7df2dc

2、使用bcrypt加密:

package

com.petter.util;

import

org.springframework.security.crypto.bcrypt.bcryptpasswordencoder;

/***

@author

hongxf

* @since

2017-04-10 10:01 */

public

class

passwordencodergenerator

}

修改資料庫中的使用者hxf密碼為 $2a$10$f0degrkipyyzcfrf/ftmsoakl1y/xhpkaijwdfiwnoozgtes8dili

這裡需要注意,保證資料庫密碼欄位的長度為60或者大於60,否則字串會被截斷。

一、使用md5加密演算法:

spring security已經廢棄了

org.

springframework

.security

.authentication

.encoding.

passwordencoder介面,推薦使用

org.

springframework

.security

.crypto

.password.

passwordencoder介面

這裡需要自定義。

1、建立自定義密碼加密實現類custompasswordencoder

package

com.petter.config;

import

org.springframework.security.authentication.encoding.md5passwordencoder;

import

org.springframework.security.crypto.password.passwordencoder;

/***

@author

hongxf

* @since

2017-04-11 10:39 */

public

class custompasswordencoder implements

passwordencoder

@override

public

boolean

matches(charsequence rawpassword, string encodedpassword)

}

2、在securityconfig中進行配置

@bean    

public

passwordencoder passwordencoder()

@override

protected

void configure(authenticationmanagerbuilder auth) throws

exception

直接把自定義的類設定即可。

同樣適用於sha加密。

二、使用bcrypt加密演算法:

1、只需要在securityconfig中進行配置

@bean    

public

passwordencoder passwordencoder()

@override

protected

void configure(authenticationmanagerbuilder auth) throws

exception

ps:如果使用的是

jdbcauthentication,安裝如下配置即可

@bean

public

passwordencoder passwordencoder()

@override

protected

void configure(authenticationmanagerbuilder auth) throws

exception

啟動測試即可

Spring Security基本配置和使用

建立專案 使用 spring boot cli 命令列工具引入web 和 security,快速建立乙個 web 應用程式 spring init dependencies web,security springbootsecurity新增乙個簡單的介面 使用ide開啟cli生成的專案,新增乙個示例...

spring security 安全框架

本文 http itblood.com spring security security framework.html 安全常識 acegi介紹 以宣告式方式為基於spring的web應用新增認證和授權控制 acegi體系結構 認證管理器 訪問控制管理器。認證 authenticationproce...

SpringSecurity認證流程

在之前的文章 springboot spring security 基本使用及個性化登入配置 中對springsecurity進行了簡單的使用介紹,基本上都是對於介面的介紹以及功能的實現。這一篇文章嘗試從原始碼的角度來上對使用者認證流程做乙個簡單的分析。在具體分析之前,我們可以先看看springse...