BCrypt實現密碼的加密


這里設計到一個新的知識點,下來准備找找資料學習一下:Spring Security
我們都知道,密碼這種東西存到數據庫是不能以明文直接存入的,而是要經過加密,而且加密還頗多講究

比如以前的 MD5加密,現在很容易就破解了,需要配合一下其他的手段完成密碼的不見光性

Spring Security 提供了BCryptPasswordEncoder類,使用BCrypt強哈希方法來加密密碼

依賴: 

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

我們只是使用該框架的加密功能,添加配置類,配置其他地址都可以訪問(安全配置類)

解析:(請把注釋刪掉,否則無法解析)

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests() //所有sucurity全注解配置實現的開端,表示需要的權限 權限分為:攔截的路徑和訪問該路徑需要的權限
                .antMatchers("/**").permitAll()  //第一個表示攔截的路徑,第二個表示放行所有路徑,任何權限隨意訪問
                .anyRequest().authenticated()  //第一個表示任何的請求,第二個表示認證后才能訪問
                .and().csrf().disable();  //第一個為固定寫法,第二個表示csrf攔截失效
    }

 然后我們就可以在Spring容器啟動的時候注入  BCryptPasswordEncoder,然后就可以開始使用了

然后我們將  BCryptPasswordEncoder 注入到我們要使用 加密服務的類中,

主要使用的方法有兩個encode ( 加密 )  matches ( 判斷明文和加密后的密文是否相同 ,返回布爾值)

看看列子:

   Controller:

    

   Service:

    

 使用的是Spring全家桶,下面我們開始測試:

    

查看數據庫錄入的數據:這就是 “2222” 加密后形成的密文

    

查看控制台打印的數據:

    

密碼就以密文的方式存入到了數據庫,Spring Security不了解,下來了解了解。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM