欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

在PasswordEncoder接口中有三個(gè)方法:

  • String encode(CharSequence rawPassword):加密原始密碼。而B(niǎo)Crypt實(shí)現(xiàn)類會(huì)隨機(jī)生成的salt來(lái)進(jìn)行加密。
  • boolean matches(CharSequence rawPassword, String encodedPassword):對(duì)加密的密碼和傳入的原始密碼進(jìn)行驗(yàn)證。如果密碼匹配則返回true,否則返回false。存儲(chǔ)的密碼本身永遠(yuǎn)不會(huì)被解碼。
    • 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>

測(cè)試方法

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

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

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

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

相關(guān)文章

  • Java實(shí)現(xiàn)俄羅斯方塊小游戲源碼

    Java實(shí)現(xiàn)俄羅斯方塊小游戲源碼

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)俄羅斯方塊小游戲源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Springboot集成JWT實(shí)現(xiàn)登錄注冊(cè)的示例代碼

    Springboot集成JWT實(shí)現(xiàn)登錄注冊(cè)的示例代碼

    本文主要介紹了Springboot集成JWT實(shí)現(xiàn)登錄注冊(cè)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • SpringMvc @Valid如何拋出攔截異常

    SpringMvc @Valid如何拋出攔截異常

    這篇文章主要介紹了SpringMvc @Valid如何拋出攔截異常,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 一文深入理解Java中的深拷貝機(jī)制

    一文深入理解Java中的深拷貝機(jī)制

    在Java編程中,我們經(jīng)常需要處理對(duì)象的復(fù)制問(wèn)題,深拷貝和淺拷貝是兩種常見(jiàn)的復(fù)制方式,它們?cè)趦?nèi)存管理和對(duì)象引用方面存在不同特點(diǎn),本文將帶大家深入探究Java中的深拷貝機(jī)制,需要的朋友可以參考下
    2023-09-09
  • IDEA性能優(yōu)化設(shè)置(解決卡頓問(wèn)題)

    IDEA性能優(yōu)化設(shè)置(解決卡頓問(wèn)題)

    在我們?nèi)粘J褂肐DEA進(jìn)行開(kāi)發(fā)時(shí),可能會(huì)遇到許多卡頓的瞬間,本文主要介紹了IDEA性能優(yōu)化設(shè)置,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2023-05-05
  • java kafka寫入數(shù)據(jù)到HDFS問(wèn)題

    java kafka寫入數(shù)據(jù)到HDFS問(wèn)題

    這篇文章主要介紹了java kafka寫入數(shù)據(jù)到HDFS問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • java實(shí)現(xiàn)jdbc查詢結(jié)果集result轉(zhuǎn)換成對(duì)應(yīng)list集合

    java實(shí)現(xiàn)jdbc查詢結(jié)果集result轉(zhuǎn)換成對(duì)應(yīng)list集合

    本文給大家匯總介紹了java實(shí)現(xiàn)jdbc查詢結(jié)果集result轉(zhuǎn)換成對(duì)應(yīng)list集合,十分的簡(jiǎn)單,有相同需求的小伙伴可以參考下。
    2015-12-12
  • SpringBoot集成Swagger構(gòu)建api文檔的操作

    SpringBoot集成Swagger構(gòu)建api文檔的操作

    這篇文章主要介紹了SpringBoot集成Swagger構(gòu)建api文檔的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • SpringBoot2.x 整合 thumbnailator 圖片處理的示例代碼

    SpringBoot2.x 整合 thumbnailator 圖片處理的示例代碼

    這篇文章主要介紹了SpringBoot2.x 之整合 thumbnailator 圖片處理,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 基于Java實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換工具類的示例代碼

    基于Java實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換工具類的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何基于Java實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換工具類,從而實(shí)現(xiàn)減少參數(shù)長(zhǎng)度的效果,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2023-02-02

最新評(píng)論