成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

安全存儲口令的業界標準:bcrypt算法

存儲 存儲軟件 算法
bcrypt 算法基于 Blowfish 塊密鑰算法,bcrypt 算法已經有10多年的歷史,而 Blowfish 密鑰算法更是有20多年的歷史,久經考驗,所以被認為是 Hash 加密口令的標準算法。

 談一談安全保護口令的的標準算法,這就是 bcrypt 算法。為了把事情說清楚,分兩篇文章描述:

  • 說說 bcrypt 算法,以及通過PHP的crypt()算法進一步參數闡述,雖然crypt()算法已經不推薦使用了,但對于理解 bcrypt 算法還是非常好的,可以看看它的歷史。
  • 在一個系統中,如果有多種開發語言,那么 bcrypt 算法是否通用呢?通過 PHP 和 Ptyhon 語言進行描述。

本文主要理解 bcrypt 算法,bcrypt 算法可以認為是 KDF 函數的一種實現,也有迭代因子的概念。

[[256502]]

bcrypt 算法基于 Blowfish 塊密鑰算法,bcrypt 算法已經有10多年的歷史,而 Blowfish 密鑰算法更是有20多年的歷史,久經考驗,所以被認為是 Hash 加密口令的標準算法。

bcrypt 算法在內部會使用內存初始化 hash 過程,由于需要內存,雖然在 CPU 上運行很快,但在 GPU 并行運算卻不快,這也減緩了攻擊者的破解速度。

接下去我使用 PHP 語言中的 crypt() 函數介紹如何使用 bcrypt 算法,如果你對 Hash 保護口令了解的不多,那么使用 crypt() 函數可能會存在很多問題。

首先必須明確 crypt() 函數并不是 bcrypt 算法,它可以基于多種不同的 Hash 算法。

該函數的原型:

  1. string crypt ( string $str [, string $salt ] ) 

看上去很簡單,但隱藏了很多內容。

如果你僅僅調用 crypt(),會根據操作系統版本和 PHP 版本使用相應的 Hash 算法,而且如果不顯示的輸入 salt,可能會得到一個弱 salt,所以不推薦這樣調用 crypt() 函數,因為屏蔽了很多細節。

那么如何選定 bcrypt 算法(Blowfish)、迭代因子、salt,先看一個例子:

  1. if (CRYPT_BLOWFISH == 1) { 
  2. echo 'Blowfish:' . crypt('abcde''$2a$07$woshiyigesaltzhi') . "\n"
  • 表示使用 bcrypt 算法(注意:如果是 PHP 5.3.7 后續版本,使用 ,修復了安全風險)。
  • 07 表示迭代次數為 7 次。
  • 最后一個 $ 后面內容為 salt 值。

接下去看看上面代碼的輸出:

  1. Blowfish:$2a$07$woshiyigesaltzhi$$$$$.lrU488y7E1Xw.JA4uizIu.PBSSe7t4y 

也就是說返回值包含了 crypt() 函數相關信息,比如告訴你使用了 bcrypt 算法,迭代因子是 7,salt 是 woshiyigesaltzhi$$$$$,剩下的部分就是口令密文。

此處,遺留一個問題,crypt() 運算出來的口令密文包含 salt 是否不安全?這會在下一篇中描述。

crypt() 也可以使用其它的 Hash 函數,比如:

  • CRYPT_MD5:
  • CRYPT_BLOWFISH: 或
  • CRYPT_SHA256:
  • CRYPT_SHA512:

大家大概明白 crpyt() 函數的使用了,可能使用的時候有點麻煩,所以建議包裝下該函數:

  1. function better_crypt($input, $rounds = 7) { 
  2.     $salt = openssl_random_pseudo_bytes(22); 
  3.     return crypt($input, sprintf('$2a$%02d$', $rounds) . $salt); 

不管怎么說,crypt() 函數完全基于底層的 C 函數,運行環境也依賴于操作系統和PHP版本,系統和代碼遷移的時候可能有多種問題,所以 PHP 從 5.5 版本以后建議使用Password Hashing Functions,這在下一篇會詳細說一下。

最后簡單提下 scrypt 算法,它是一種新的口令保護算法,是另外一種思路,被認為是口令保護的業界標準算法,但由于時間較短,現在建議還是使用 bcrypt() 算法。

 

責任編輯:武曉燕 來源: 虞大膽的嘰嘰喳喳
相關推薦

2010-06-13 09:41:20

HDS統一計算平臺

2018-12-25 09:26:28

2022-09-14 08:02:25

加密算法Bcryp

2015-04-28 16:29:33

2020-03-07 08:51:51

勒索軟件網絡攻擊網絡安全

2015-08-05 13:16:39

2017-12-18 08:21:46

存儲業界動態

2018-05-17 11:04:18

2011-08-25 09:28:11

云計算云計算標準

2010-04-27 09:16:49

2010-09-07 12:12:29

2021-06-29 10:30:49

口令安全黑名網絡安全

2010-01-14 14:57:00

可堆疊交換機標準

2016-09-01 21:25:01

Gartner亞馬遜云存儲

2018-05-09 16:07:33

Fusion云應用甲骨文

2011-03-21 16:21:49

Oracle監聽口令監聽器

2009-06-25 09:46:04

2009-12-22 16:18:04

路由器口令

2018-01-22 15:29:38

第七屆中國云計算標準和

2018-08-16 11:00:42

華為云
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品亚洲国产奇米99 | 成人精品免费视频 | 日韩欧美国产精品一区二区 | 三级黄色片在线播放 | 久久一区二区视频 | 日韩国产在线 | 日韩免费一区二区 | av中文字幕在线观看 | 精品综合久久久 | 久久欧美精品 | 欧美激情99| 风间由美一区二区三区在线观看 | 成人性生交大免费 | 亚洲天堂男人的天堂 | 久久久精品网站 | 国产精品一区二区三区在线 | 亚洲一区二区三区在线免费 | 国产精品黄视频 | 国产福利91精品一区二区三区 | www.久| 91精品国产91久久久久久三级 | 久久久久久国 | 亚洲精品综合 | 操操日 | av中文字幕在线观看 | 91精品国产91久久久久久密臀 | 国产精品久久久久久福利一牛影视 | 午夜成人免费视频 | 亚洲精品1区2区3区 91免费看片 | 欧美高清视频 | 一级做受毛片免费大片 | 成人1区| 成人特级毛片 | 91成人免费观看 | 国产精品久久久久久久久久久免费看 | 天天看天天操 | 午夜精品久久久久久久久久久久久 | 国产亚洲欧美另类一区二区三区 | 国产精品91久久久久久 | 日产精品久久久一区二区福利 | 免费在线一区二区 |