亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java通過(guò)BCrypt加密過(guò)程詳解

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

一、概述

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

目前,MD5和BCrypt比較流行。相對(duì)來(lái)說(shuō),BCrypt比MD5更安全,但加密更慢。

二、使用BCrypt

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

然后通過(guò)Ant進(jìn)行編譯。編譯之后得到j(luò)bcrypt.jar。也可以不需要進(jìn)行編譯,而直接使用源碼中的java文件(本身僅一個(gè)文件)。
下面是官網(wǎng)的一個(gè)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");
  }
}

在這個(gè)例子中,

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

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

BCrypt.checkpw(candidate, hashed)

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

三、加鹽

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

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

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

相關(guān)文章

  • 解讀yml文件中配置時(shí)間類型的轉(zhuǎn)換方式

    解讀yml文件中配置時(shí)間類型的轉(zhuǎn)換方式

    這篇文章主要介紹了yml文件中配置時(shí)間類型的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java實(shí)現(xiàn)簡(jiǎn)單銀行ATM系統(tǒng)

    java實(shí)現(xiàn)簡(jiǎn)單銀行ATM系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單銀行ATM系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java中replace的用法實(shí)例講解

    Java中replace的用法實(shí)例講解

    這篇文章主要給大家介紹了關(guān)于Java中replace用法的相關(guān)資料,Java中的replace方法是用于字符串替換的方法,它可以接受兩個(gè)參數(shù),第一個(gè)參數(shù)是需要被替換的字符串,第二個(gè)參數(shù)是替換后的字符串,需要的朋友可以參考下
    2024-04-04
  • Java調(diào)用MySQL存儲(chǔ)過(guò)程并獲得返回值的方法

    Java調(diào)用MySQL存儲(chǔ)過(guò)程并獲得返回值的方法

    這篇文章主要介紹了Java調(diào)用MySQL存儲(chǔ)過(guò)程并獲得返回值的方法,實(shí)例分析了java實(shí)現(xiàn)MySQL存儲(chǔ)過(guò)程的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • spring boot中controller的使用及url參數(shù)的獲取方法

    spring boot中controller的使用及url參數(shù)的獲取方法

    這篇文章主要介紹了spring boot中controller的使用及url參數(shù)的獲取方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Spring boot跨域設(shè)置實(shí)例詳解

    Spring boot跨域設(shè)置實(shí)例詳解

    這篇文章主要介紹了Spring boot跨域設(shè)置實(shí)例詳解,簡(jiǎn)單介紹了跨域的定義,原因,使用場(chǎng)景及解決方案,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Java使用OpenFeign管理多個(gè)第三方服務(wù)調(diào)用

    Java使用OpenFeign管理多個(gè)第三方服務(wù)調(diào)用

    最近開(kāi)發(fā)了一個(gè)統(tǒng)一調(diào)度類的項(xiàng)目,需要依賴多個(gè)第三方服務(wù),這些服務(wù)都提供了HTTP接口供我調(diào)用。感興趣的可以了解一下
    2021-06-06
  • 一篇文章帶你入門Java?UML的類圖

    一篇文章帶你入門Java?UML的類圖

    這篇文章主要為大家詳細(xì)介紹了Java?UML的類圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • 如何解決idea的Translation插件google翻譯無(wú)法使用問(wèn)題

    如何解決idea的Translation插件google翻譯無(wú)法使用問(wèn)題

    這篇文章主要介紹了如何解決idea的Translation插件google翻譯無(wú)法使用問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • @RequestAttribute和@RequestParam注解的區(qū)別及說(shuō)明

    @RequestAttribute和@RequestParam注解的區(qū)別及說(shuō)明

    這篇文章主要介紹了@RequestAttribute和@RequestParam注解的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評(píng)論