最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文掌握SpringSecurity?BCrypt密碼加密和解密

 更新時間:2023年04月14日 11:32:13   作者:南有喬木i  
BCrypt就是一款加密工具,可以比較方便地實(shí)現(xiàn)數(shù)據(jù)的加密工作。也可以簡單理解為它內(nèi)部自己實(shí)現(xiàn)了隨機(jī)加鹽處理,這篇文章主要介紹了SpringSecurity?BCrypt密碼加密和解密,一文學(xué)會使用BCryptPasswordEncoder的方法,需要的朋友可以參考下

BCrypt就是一款加密工具,可以比較方便地實(shí)現(xiàn)數(shù)據(jù)的加密工作。也可以簡單理解為它內(nèi)部自己實(shí)現(xiàn)了隨機(jī)加鹽處理。例如,使用MD5加密,每次加密后的密文其實(shí)都是一樣的,這樣就方便了MD5通過大數(shù)據(jù)的方式進(jìn)行破解。
BCrypt生成的密文是60位的,而MD5的是32位的。

BCryptPasswordEncoder 是 Spring Security 官方推薦的密碼解析器。BCryptPasswordEncoder 類是PasswordEncoder接口的實(shí)現(xiàn)類。
BCryptPasswordEncoder 是對 BCrypt 強(qiáng)散列方法的具體實(shí)現(xiàn)。是基于 Hash 算法實(shí)現(xiàn)的單向加密。可以通過 strength 控制加密強(qiáng)度,默認(rèn) 10.

使用BCrypt能實(shí)現(xiàn)每次加密的值都是不一樣的。

在PasswordEncoder接口中有三個方法:

  • String encode(CharSequence rawPassword):加密原始密碼。而BCrypt實(shí)現(xiàn)類會隨機(jī)生成的salt來進(jìn)行加密。
  • boolean matches(CharSequence rawPassword, String encodedPassword):對加密的密碼和傳入的原始密碼進(jìn)行驗(yàn)證。如果密碼匹配則返回true,否則返回false。存儲的密碼本身永遠(yuǎn)不會被解碼。
    • rawPassword:原始密碼,比如加密前密碼是“123”,這里就傳入“123”
    • encodedPassword:加密后的密碼
  • boolean upgradeEncoding(String encodedPassword):如果加密后的密碼需要重新加密以提高安全性,則返回true,否則返回false。默認(rèn)返回false。
    • encodedPassword:加密后的密碼

需要的maven依賴:

<!-- SpringBoot項(xiàng)目中的依賴 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- 非SpringBoot項(xiàng)目的依賴,SpringBoot項(xiàng)目也能用 -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
</dependency>

測試方法

public class BcryptTest {
    public static void main(String[] args) {
        // 用戶密碼
        String password = "123123";
        // 創(chuàng)建密碼加密的對象
        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        // 密碼加密
        String newPassword = passwordEncoder.encode(password);
        System.out.println("加密后的密碼為:" + newPassword);

        // 校驗(yàn)這兩個密碼是否是同一個密碼
        // matches方法第一個參數(shù)是原密碼,第二個參數(shù)是加密后的密碼
        boolean matches = passwordEncoder.matches(password, newPassword);
        System.out.println("兩個密碼一致:" + matches);
    }
}

執(zhí)行結(jié)果:

到此這篇關(guān)于【SpringSecurity】BCrypt密碼加密和解密 一文學(xué)會使用BCryptPasswordEncoder的文章就介紹到這了,更多相關(guān)BCrypt密碼加密和解密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java內(nèi)存管理垃圾回收基礎(chǔ)詳解

    Java內(nèi)存管理垃圾回收基礎(chǔ)詳解

    這篇文章主要為大家介紹了Java內(nèi)存管理垃圾回收基礎(chǔ)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 如何解決Maven出現(xiàn)Could not find artifact的問題

    如何解決Maven出現(xiàn)Could not find artifact的問題

    這篇文章主要介紹了如何解決Maven出現(xiàn)Could not find artifact的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • AsyncHttpClient exception異常源碼流程解析

    AsyncHttpClient exception異常源碼流程解析

    這篇文章主要為大家介紹了AsyncHttpClient的exception源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • java實(shí)體對象與Map之間的轉(zhuǎn)換工具類代碼實(shí)例

    java實(shí)體對象與Map之間的轉(zhuǎn)換工具類代碼實(shí)例

    這篇文章主要介紹了java實(shí)體對象與Map之間的轉(zhuǎn)換工具類代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Spring Bean生命周期之屬性賦值階段詳解

    Spring Bean生命周期之屬性賦值階段詳解

    這篇文章主要為大家詳細(xì)介紹了Spring Bean生命周期之屬性賦值階段,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • mybatisplus 的SQL攔截器實(shí)現(xiàn)關(guān)聯(lián)查詢功能

    mybatisplus 的SQL攔截器實(shí)現(xiàn)關(guān)聯(lián)查詢功能

    大家都知道m(xù)ybatisplus不支持關(guān)聯(lián)查詢,后來學(xué)習(xí)研究發(fā)現(xiàn)mybatisplus的SQL攔截器可以實(shí)現(xiàn)這一操作,下面小編給大家分享我的demo實(shí)現(xiàn)基本的關(guān)聯(lián)查詢功能沒有問題,對mybatisplus關(guān)聯(lián)查詢相關(guān)知識感興趣的朋友一起看看吧
    2021-06-06
  • java?Map集合中取鍵和值的4種方式舉例

    java?Map集合中取鍵和值的4種方式舉例

    Java中的Map是一種鍵值對存儲的數(shù)據(jù)結(jié)構(gòu),其中每個鍵都唯一,與一個值相關(guān)聯(lián),這篇文章主要給大家介紹了關(guān)于java?Map集合中取鍵和值的4種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Java MAVEN 工程pom配置報(bào)錯解決方案

    Java MAVEN 工程pom配置報(bào)錯解決方案

    這篇文章主要介紹了Java MAVEN 工程pom配置報(bào)錯解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 最新評論

    梅州市| 阜平县| 扎鲁特旗| 天水市| 大厂| 南阳市| 伊宁县| 台南县| 团风县| 桐城市| 辽阳县| 昌图县| 桃园县| 阿尔山市| 武川县| 灵武市| 红桥区| 台湾省| 通道| 措美县| 桦南县| 张家川| 建瓯市| 洛扎县| 建阳市| 安多县| 鹤岗市| 周口市| 和田市| 甘南县| 中江县| 景谷| 安图县| 云梦县| 班玛县| 尉氏县| 繁峙县| 南昌县| 临澧县| 安岳县| 普格县|