Springboot基于BCrypt非對(duì)稱加密字符串的實(shí)現(xiàn)
1 : BCrypt簡(jiǎn)介
在用戶模塊中,需要對(duì)于用戶的密碼進(jìn)行保護(hù),通常都會(huì)進(jìn)行加密。
我們通常對(duì)密碼進(jìn)行加密,然后存放在數(shù)據(jù)庫中,在用戶進(jìn)行登錄的時(shí)候,將其輸入的密碼進(jìn)行加密然后與數(shù)據(jù)庫中存放的密文進(jìn)行比較,以驗(yàn)證用戶密碼是否正確。
目前,MD5和BCrypt比較流行。相對(duì)來說,BCrypt比MD5更安全。
BCrypt官網(wǎng)地址:http://www.mindrot.org/projects/jBCrypt/
2 : 集成BCrypt加密及驗(yàn)證
2.1 : 引入POM
<dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</artifactId> <version>0.3m</version> </dependency>
2.2 : 工具類
PassWordUtil.java
package com.utils; import org.mindrot.jbcrypt.BCrypt; public class PassWordUtil { ? ? /** ? ? ?* 密碼加密 ? ? ?*/ ? ? public static String encrypt(String source){ ? ? ? ? String salt = BCrypt.gensalt(); ? ? ? ? return BCrypt.hashpw(source, salt); ? ? } ? ? /** ? ? ?* 密碼校驗(yàn) ? ? ?*/ ? ? public static boolean check(String source, String pwdCode){ ? ? ? ? return BCrypt.checkpw(source, pwdCode); ? ? } }
2.3 : 驗(yàn)證
public static void main(String[] args) { String password = "abc123&%*"; String crypt = encrypt(password); System.out.println(crypt); System.out.println("=========="); System.out.println(check(password, crypt)); System.out.println(check(password + "1", crypt)); }
到此這篇關(guān)于Springboot基于BCrypt非對(duì)稱加密字符串的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Springboot BCrypt非對(duì)稱加密字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 解決Spring security5.5.7報(bào)錯(cuò)Encoded password does not look like BCrypt異常
- 使用spring?security?BCryptPasswordEncoder接入系統(tǒng)
- 如何在spring boot項(xiàng)目中使用Spring Security的BCryptPasswordEncoder類進(jìn)行相同密碼不同密文的加密和驗(yàn)證
- 一文掌握SpringSecurity?BCrypt密碼加密和解密
- SpringBoot整合BCrypt實(shí)現(xiàn)密碼加密
- Spring security BCryptPasswordEncoder密碼驗(yàn)證原理詳解
- Spring項(xiàng)目使用Maven和BCrypt實(shí)現(xiàn)修改密碼功能方式
相關(guān)文章
java實(shí)現(xiàn)同態(tài)加密算法的實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)同態(tài)加密算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Java8中關(guān)于Function.identity()的使用
這篇文章主要介紹了Java8中關(guān)于Function.identity()的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05json序列化時(shí)忽略值為null的字段2種方式實(shí)例
這篇文章主要給大家介紹了關(guān)于json序列化時(shí)忽略值為null的字段的2種方式,當(dāng)對(duì)象中某個(gè)字段為null時(shí),我們希望將對(duì)象轉(zhuǎn)換成json時(shí)為null的字段不會(huì)被轉(zhuǎn)換到j(luò)son字符串,里面需要的朋友可以參考下2023-10-10KotlinScript構(gòu)建SpringBootStarter保姆級(jí)教程
這篇文章主要為大家介紹了KotlinScript構(gòu)建SpringBootStarter的保姆級(jí)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09spring boot springMVC擴(kuò)展配置實(shí)現(xiàn)解析
這篇文章主要介紹了spring boot springMVC擴(kuò)展配置實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08SpringBoot Jpa企業(yè)開發(fā)示例詳細(xì)講解
這篇文章主要介紹了SpringBoot Jpa企業(yè)開發(fā)示例,Jpa可以通過實(shí)體類生成數(shù)據(jù)庫的表,同時(shí)自帶很多增刪改查方法,大部分sql語句不需要我們自己寫,配置完成后直接調(diào)用方法即可,很方便2022-11-11