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

Java通過BCrypt加密過程詳解

 更新時間:2019年07月17日 10:36:19   作者:bcombettter  
這篇文章主要介紹了Java通過BCrypt加密過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

一、概述

在用戶模塊,對于用戶密碼的保護(hù),通常都會進(jìn)行加密。我們通常對密碼進(jìn)行加密,然后存放在數(shù)據(jù)庫中,在用戶進(jìn)行登錄的時候,將其輸入的密碼進(jìn)行加密然后與數(shù)據(jù)庫中存放的密文進(jìn)行比較,以驗證用戶密碼是否正確。

目前,MD5和BCrypt比較流行。相對來說,BCrypt比MD5更安全,但加密更慢。

二、使用BCrypt

首先,可以在官網(wǎng)中取得源代碼

然后通過Ant進(jìn)行編譯。編譯之后得到j(luò)bcrypt.jar。也可以不需要進(jìn)行編譯,而直接使用源碼中的java文件(本身僅一個文件)。
下面是官網(wǎng)的一個Demo。

public class BCryptDemo {
 public static void main(String[] args) {
   // Hash a password for the first time
     String password = "testpassword";
    String hashed = BCrypt.hashpw(password, BCrypt.gensalt());
    System.out.println(hashed);
  // gensalt's log_rounds parameter determines the complexity
  // the work factor is 2**log_rounds, and the default is 10
  String hashed2 = BCrypt.hashpw(password, BCrypt.gensalt(12));
 
  // Check that an unencrypted password matches one that has
  // previously been hashed
  String candidate = "testpassword";
  //String candidate = "wrongtestpassword";
  if (BCrypt.checkpw(candidate, hashed))
    System.out.println("It matches");
  else
  System.out.println("It does not match");
  }
}

在這個例子中,

BCrypt.hashpw(password, BCrypt.gensalt())

是核心。通過調(diào)用BCrypt類的靜態(tài)方法hashpw對password進(jìn)行加密。第二個參數(shù)就是我們平時所說的加鹽。

BCrypt.checkpw(candidate, hashed)

該方法就是對用戶后來輸入的密碼進(jìn)行比較。如果能夠匹配,返回true。

三、加鹽

如果兩個人或多個人的密碼相同,加密后保存會得到相同的結(jié)果。破一個就可以破一片的密碼。如果名為A的用戶可以查看數(shù)據(jù)庫,那么他可以觀察到自己的密碼和別人的密碼加密后的結(jié)果都是一樣,那么,別人用的和自己就是同一個密碼,這樣,就可以利用別人的身份登錄了。

其實只要稍微混淆一下就能防范住了,這在加密術(shù)語中稱為“加鹽”。具體來說就是在原有材料(用戶自定義密碼)中加入其它成分(一般是用戶自有且不變的因素),以此來增加系統(tǒng)復(fù)雜度。當(dāng)這種鹽和用戶密碼相結(jié)合后,再通過摘要處理,就能得到隱蔽性更強(qiáng)的摘要值。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot之@Aspect注解解讀

    SpringBoot之@Aspect注解解讀

    這篇文章主要介紹了SpringBoot之@Aspect注解解讀,AOP是面向切面編程,通過預(yù)編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù),而@Aspect 就是把一個類定義為切面供容器讀取,需要的朋友可以參考下
    2024-01-01
  • Spring?Boot?+?Mybatis?Plus實現(xiàn)樹狀菜單的方法

    Spring?Boot?+?Mybatis?Plus實現(xiàn)樹狀菜單的方法

    這篇文章主要介紹了Spring?Boot?+?Mybatis?Plus實現(xiàn)樹狀菜單,包括實體類中添加子菜單列表和集合及構(gòu)建菜單樹的詳細(xì)代碼,代碼簡單易懂,需要的朋友可以參考下
    2021-12-12
  • Java?RAG集成實戰(zhàn)指南(含代碼)

    Java?RAG集成實戰(zhàn)指南(含代碼)

    在這個背景下,大模型JavaAPI和RAG技術(shù)逐漸嶄露頭角,成為軟件開發(fā)者們關(guān)注的焦點,下面這篇文章主要介紹了Java RAG集成的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-04-04
  • Minio與SpringBoot使用okhttp3問題解決

    Minio與SpringBoot使用okhttp3問題解決

    這篇文章主要介紹了Minio與SpringBoot使用okhttp3問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 四個Java必須知道的負(fù)載均衡算法分享

    四個Java必須知道的負(fù)載均衡算法分享

    我們在設(shè)計系統(tǒng)的時候,為了系統(tǒng)的高擴(kuò)展性,會創(chuàng)建無狀態(tài)的系統(tǒng)。但是,要使系統(tǒng)具有更好的可擴(kuò)展性,除了無狀態(tài)設(shè)計之外,還要考慮采用什么負(fù)載均衡算法,本文就帶領(lǐng)大家認(rèn)識以下常見的4種負(fù)載均衡算法
    2023-01-01
  • Mybatis通過攔截器實現(xiàn)單數(shù)據(jù)源內(nèi)多數(shù)據(jù)庫切換

    Mybatis通過攔截器實現(xiàn)單數(shù)據(jù)源內(nèi)多數(shù)據(jù)庫切換

    這篇文章主要為大家詳細(xì)介紹了Mybatis如何通過攔截器實現(xiàn)單數(shù)據(jù)源內(nèi)多數(shù)據(jù)庫切換,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • 淺談二分法查找和原始算法查找的效率對比

    淺談二分法查找和原始算法查找的效率對比

    這篇文章主要介紹了淺談二分法查找和原始算法查找的效率對比,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • SpringCloud?Gateway詳細(xì)分析實現(xiàn)負(fù)載均衡與熔斷和限流

    SpringCloud?Gateway詳細(xì)分析實現(xiàn)負(fù)載均衡與熔斷和限流

    這篇文章主要介紹了SpringCloud?Gateway實現(xiàn)路由轉(zhuǎn)發(fā),負(fù)載均衡,熔斷和限流,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • SpringBoot使用AOP實現(xiàn)防重復(fù)提交功能

    SpringBoot使用AOP實現(xiàn)防重復(fù)提交功能

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何使用AOP實現(xiàn)防重復(fù)提交功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • spring cloud中啟動Eureka Server的方法

    spring cloud中啟動Eureka Server的方法

    本篇文章主要介紹了spring cloud中啟動Eureka Server的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01

最新評論

武隆县| 台北县| 马关县| 神池县| 威远县| 保定市| 大余县| 蓬溪县| 洛南县| 山东| 丽水市| 昭平县| 行唐县| 郎溪县| 鄢陵县| 沐川县| 拉萨市| 乌兰县| 喀什市| 平遥县| 石城县| 玉山县| 石屏县| 凤山县| 孝昌县| 岳西县| 景德镇市| 会东县| 江门市| 盐城市| 石景山区| 神池县| 崇文区| 行唐县| 区。| 武陟县| 淳安县| 霍州市| 乡城县| 温州市| 云南省|