早期用的Md5或是SHA

原文和密文是絕對對等的,一對一的鍵值對,如果想讓它變得足夠安全,需要往里面加鹽,只不過這個鹽是你自己制定的規(guī)則,例如,用戶輸入了一個密碼123456,我們公司之前規(guī)則是把收尾調(diào)換,中間加入公司名稱!

有個不好的地方就是如果別人知道了你的加鹽規(guī)則,可以反過來破解。。。

spring security

使用BCrypt密碼加密,這個加鹽規(guī)則是隨機的!!!每次動態(tài)變化!!

不過這個加鹽位置是固定的,但是每一次位置也不是固定的,也就是說,它只把指定位置上的鹽進行扣掉,

至于那一位是什么東西它不管。因為它也不知道,它每次都是隨機加載進去的

 

微服務鑒權(quán)JWT

token

認證和授權(quán)

認證就是登陸,就是告訴系統(tǒng)你是誰!!!

授權(quán)是讓系統(tǒng)根據(jù)你當前登陸的角色,給與相應的權(quán)限

任何安全性的工作都要分兩步,一步是認證,一步是授權(quán),必須先認證才能進行授權(quán)

如果你不認證(即登陸),系統(tǒng)不知道你是誰?如果授權(quán)?

 


import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

/**
* 安全配置類
*/
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception {
/**
* authorizeRequests所有security全注解配置實現(xiàn)的開端,表示開始說明需要的權(quán)限
* 需要權(quán)限部分分向部分:第一部分是攔截的路徑,第二部分是訪問該路徑需要的權(quán)限。
* antMatchers表示攔截什么路徑,/**表示所有,permitAll表示任何權(quán)限都可以訪問。
* anyRequest表示任何的請求,authenticated認證后才能訪問
* .and().csrf().disable();固定寫法,表示使csrf攔截失效。
* csrf是一種網(wǎng)絡攻擊技術,也就是springsecurity安全級別設置的有點偏高,使用這個后,
* springsecurity會認為除了所有我自己內(nèi)部請求外,都被認為是在攻擊我
*/
http
.authorizeRequests()
.antMatchers("/**").permitAll()
.anyRequest().authenticated()
.and().csrf().disable();
}
}