簡述BCrypt加密算法

Blowfish加密算法是一種對稱分組密碼算法,其擁有加密速度快、緊湊、密鑰長度可變等特點。而今天我們文章的主角則是基于Blowfish算法而來的BCrypt加密算法。

BCrypt算法簡介

BCrypt算法是專門為密碼存儲而設計的算法,基于Blowfish加密算法變形而來,由Niels Provos和David Mazières發(fā)表于1999年的USENIX。

BCrypt算法一個非常重要的特征就是自適應性,可以保證加密的速度在一個特定的范圍內,即使計算機的運算能力非常高,可以通過增加迭代次數(shù)的方式,使得加密速度變慢,從而可以抵御暴力搜索攻擊,而且不會影響已有用戶的登錄。

BCrypt加密算法

BCrypt算法的加密原理

BCrypt算法可以看作是hash算法的變種,它使用“鹽”來加密密碼。鹽是一個隨機生成的字符串,可以在密碼加密過程中使用,以確保每次加密結果都不同。BCrypt算法可以使用不同的“折疊”級別,即將多次hash迭代運算來增加安全性,從而創(chuàng)建一個更安全的加密字符串。

簡單來理解就是BCrypt算法內部自己實現(xiàn)了隨機加鹽處理。使用Bcrypt,每次加密后的密文是不一樣的。

雖然對同一個密碼,每次生成的hash不一樣,但是hash中包含了“鹽”,在下次校驗時,從hash中取出“鹽”,“鹽”跟password進行hash,得到的結果跟保存在DB中的hash進行比對。

BCrypt加密算法

BCrypt算法的優(yōu)缺點

BCrypt算法在加密過程中可以實現(xiàn)不同的折疊級別,這讓攻擊者需要花費更長的時間來破解密碼,因此可以有效保護用戶的安全性。

此外,BCrypt還可以讓用戶在加密時輸入自定義的“鹽”,這可以進一步增加加密的安全性。

另外,BCrypt還可以使用不同的“折疊”級別,這讓攻擊者需要花費更多的時間來破解密碼.

但是,高度的安全帶來的問題就是性能的損失,因為它的復雜性,導致了每次計算的耗時遠遠大于普通的加鹽hash算法。

BCrypt加密算法


BCrypt算法的安全性非常高,但其速度卻比其他同類型算法慢上很多,所以在實際應用中并沒有其他hash算法廣泛,一般常用于保護安全要求極高的數(shù)據(jù)。

免責聲明:素材源于網(wǎng)絡,如有侵權,請聯(lián)系刪稿。