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

Java實(shí)現(xiàn)BCrypt密碼加密的示例

 更新時(shí)間:2026年04月15日 08:14:45   作者:用戶668859984766  
本文介紹了MySQL數(shù)據(jù)庫密碼安全存儲(chǔ)的方法,使用BCrypt不可逆加密,自動(dòng)加鹽,每次加密結(jié)果不同,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.作用

如果MYSQL數(shù)據(jù)庫被盜,賬號(hào)密碼就全沒了,所以要加密。還有可能蹲號(hào)子

BCrypt特點(diǎn)

  • 不可逆加密(無法解密回原文)
  • 自動(dòng)加鹽(同一個(gè)密碼每次加密結(jié)果都不一樣)
  • 安全、簡單、Spring自帶

2.BCrypt兩個(gè)核心方法

  1. 加密:BCrypt.hashpw(明文密碼,BCrypt.gensalt())
  2. 驗(yàn)證:BCrypt.checkpw(明文密碼,加密后密碼)

3.迭代一下登錄代碼

注冊(cè)時(shí)→密碼加密存儲(chǔ)

UserController.java注冊(cè)部分:

@PostMapping("/register") 
public String register(@RequestBody User user) {
// 明文密碼加密 
String rawPassword = user.getPassword(); 
String encodePassword = BCrypt.hashpw(rawPassword, BCrypt.gensalt());
user.setPassword(encodePassword); // 存入加密后的密碼 
userService.register(user); 
return "success"; 
}

登陸時(shí)→對(duì)比驗(yàn)證

重點(diǎn):不能用where password=?查詢!必須先查用戶,再比對(duì)密碼!

UserController.java登錄部分:

@PostMapping("/login") 
public String login(String username, String password, HttpSession session) {
// 1. 只根據(jù)用戶名查用戶
User user = userService.findByUsername(username); 

if (user == null) {
return "fail"; 
} 
// 2. 使用 BCrypt 校驗(yàn)密碼(明文 vs 密文) 
boolean ok = BCrypt.checkpw(password, user.getPassword()); 

if (ok) { 
session.setAttribute("loginUser", user);
return "success";
} else { 
return "fail";
} 
}

UserService增加方法

public User findByUsername(String username) {
return userMapper.findByUsername(username); 
}

UserMapper增加

User findByUsername(String username);

User Mapper.XML增加

<select id="findByUsername" resultType="com.example.easy_add_del_change_select.pojo.User"> 
select * from user where username=#{username} 
</select>

4.最終效果

  • 數(shù)據(jù)庫里密碼長這樣:

$2a$10$xxxxxxx...

  • 任何人都無法反查原文
  • 即使數(shù)據(jù)庫泄露,密碼也沒用
  • 企業(yè)標(biāo)準(zhǔn)安全方案

5.總結(jié)

密碼不能明文存儲(chǔ),必須使用 BCrypt 不可逆加密,自動(dòng)加鹽,每次加密結(jié)果不同,登錄時(shí)通過 checkpw 方法比對(duì),安全性極高。

到此這篇關(guān)于Java實(shí)現(xiàn)BCrypt密碼加密的示例的文章就介紹到這了,更多相關(guān)Java BCrypt密碼加密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot中EasyExcel實(shí)現(xiàn)execl導(dǎo)入導(dǎo)出

    SpringBoot中EasyExcel實(shí)現(xiàn)execl導(dǎo)入導(dǎo)出

    本文主要介紹了SpringBoot中EasyExcel實(shí)現(xiàn)execl導(dǎo)入導(dǎo)出,實(shí)現(xiàn)了如何準(zhǔn)備環(huán)境、創(chuàng)建實(shí)體類、自定義轉(zhuǎn)換器以及編寫導(dǎo)入邏輯的步驟和示例代碼,感興趣的可以了解下
    2023-06-06
  • SpringBoot?OpenFeign整合okHttpClient實(shí)踐

    SpringBoot?OpenFeign整合okHttpClient實(shí)踐

    SpringCloud默認(rèn)使用JDK自帶HttpURLConnection進(jìn)行數(shù)據(jù)傳輸,但沒有連接池,意味著每發(fā)起一個(gè)請(qǐng)求都會(huì)創(chuàng)建一個(gè)新連接,為提高系統(tǒng)的穩(wěn)定,需要使用池化技術(shù),這里使用OkHttpClient進(jìn)行池化配置,并給出配置示例和注意事項(xiàng)
    2026-04-04
  • IDEA更改Terminal的方法步驟

    IDEA更改Terminal的方法步驟

    Windows上開發(fā)有時(shí)候cmd不支持bash命令,有些操作就會(huì)非常麻煩,本文主要介紹了IDEA更改Terminal的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Java 實(shí)用工具類Spring 的 StopWatch常用方法

    Java 實(shí)用工具類Spring 的 StopWatch常用方法

    StopWatch 是 Spring 框架中極其實(shí)用的開發(fā)輔助工具,它為性能分析和調(diào)試提供了輕量但強(qiáng)大的能力,使用簡單、無需復(fù)雜配置,本文給大家介紹Java 實(shí)用工具類Spring 的 StopWatch常用方法,感興趣的朋友一起看看吧
    2025-04-04
  • Java 基于tcp協(xié)議實(shí)現(xiàn)文件上傳

    Java 基于tcp協(xié)議實(shí)現(xiàn)文件上傳

    這篇文章主要介紹了Java 基于tcp協(xié)議實(shí)現(xiàn)文件上傳,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • SpringMVC深入講解文件的上傳下載實(shí)現(xiàn)

    SpringMVC深入講解文件的上傳下載實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了springMVC實(shí)現(xiàn)文件上傳和下載的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Spring?Cloud?Gateway?2.x跨域時(shí)出現(xiàn)重復(fù)Origin的BUG問題

    Spring?Cloud?Gateway?2.x跨域時(shí)出現(xiàn)重復(fù)Origin的BUG問題

    這篇文章主要介紹了Spring?Cloud?Gateway?2.x跨域時(shí)出現(xiàn)重復(fù)Origin的BUG問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java實(shí)現(xiàn)單鏈表的操作

    Java實(shí)現(xiàn)單鏈表的操作

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)單鏈表的操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java使用顏色選擇器示例分享

    java使用顏色選擇器示例分享

    這篇文章主要介紹了java使用顏色選擇器示例,需要的朋友可以參考下
    2014-03-03
  • 詳解如何通過Java實(shí)現(xiàn)壓縮PDF文檔

    詳解如何通過Java實(shí)現(xiàn)壓縮PDF文檔

    PDF文檔是我們?nèi)粘^k公中使用最頻繁的文檔格式。但因?yàn)榇蠖鄶?shù)PDF文檔都包含很多頁面圖像或大量圖片,這就導(dǎo)致PDF文檔過大,處理起來較為麻煩。本文將介紹如何通過Java應(yīng)用程序壓縮PDF文檔,需要的可以了解一下
    2022-12-12

最新評(píng)論

墨玉县| 北宁市| 垫江县| 军事| 准格尔旗| 内黄县| 台前县| 全椒县| 东平县| 长沙县| 丹巴县| 延津县| 忻州市| 凤庆县| 都匀市| 许昌县| 霍州市| 水富县| 开江县| 庆元县| 永康市| 宝山区| 德庆县| 恩施市| 合肥市| 兴业县| 宁陵县| 霍城县| 东方市| 秀山| 榆社县| 若尔盖县| 永修县| 永善县| 蓬莱市| 浦北县| 毕节市| 个旧市| 伊吾县| 万全县| 安平县|