Bcrypt產生器
線上產生和驗證bcrypt密碼雜湊。可調整成本因子,內建鹽值,即時預覽雜湊結果。所有處理在瀏覽器本機完成,資料不會傳送到任何伺服器。
什麼是bcrypt?
Bcrypt是由Niels Provos和David Mazières基於Blowfish密碼設計的密碼雜湊函數。它專為安全的密碼儲存而設計,是世界上最廣泛使用的密碼雜湊演算法之一。
bcrypt是如何運作的?
Bcrypt接收密碼和鹽值作為輸入,然後執行一個高開銷的金鑰設定過程(Eksblowfish),產生固定長度的雜湊。雜湊包含演算法識別符、成本因子、鹽值和實際雜湊值,使其自包含且可驗證。
bcrypt中的成本因子是什麼?
成本因子(也稱為工作因子)是一個4到31之間的數字,決定金鑰設定的迭代次數。每次增加會使計算時間翻倍。成本10表示2^10=1024次迭代。大多數應用推薦值為10-12。
什麼是鹽值,為什麼它很重要?
鹽值是一個隨機的128位值,每個密碼雜湊都是唯一的。它防止攻擊者使用預先計算的彩虹表,並確保相同密碼產生不同的雜湊。Bcrypt自動產生鹽值並將其嵌入雜湊輸出中。
bcrypt在2025年仍然安全嗎?
是的,bcrypt仍然是推薦的密碼雜湊演算法之一。雖然存在Argon2等更新的演算法,但當使用適當的成本因子(12或更高)時,bcrypt仍被認為是安全的。其簡單性和廣泛支援使其成為實用的選擇。
bcrypt的最大密碼長度是多少?
Bcrypt的最大輸入長度為72位元組。超過72位元組的密碼會被靜默截斷。大多數實作處理ASCII密碼最多72個字元。對於更長的密碼,建議在應用bcrypt之前先用SHA-256預雜湊。
bcrypt與MD5、SHA-256等雜湊函數相比如何?
與為速度設計的MD5和SHA-256不同,bcrypt故意設計為慢速且計算密集。通用雜湊函數每秒可以計算數十億次,容易受到暴力破解攻擊。Bcrypt的自適應成本因子使其特別適合密碼安全。
bcrypt雜湊的格式是什麼?
Bcrypt雜湊遵循格式:$2b$cost$salt+hash。例如:$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy。前綴$2b$識別演算法版本,後跟成本因子、22字元鹽值和31字元雜湊。
$2a$、$2b$和$2y$有什麼區別?
這些是bcrypt版本識別符。$2a$是原始版本,$2b$修復了OpenBSD中密碼長度處理的一個小問題,$2y$是PHP特定的變體。三者在255位元組以下的密碼方面是相容的,產生相同輸出。
線上使用bcrypt產生器安全嗎?
當處理完全在瀏覽器中執行(客戶端)時,是完全安全的。密碼資料不會傳輸到任何伺服器。此工具使用JavaScript在本地處理所有內容,確保您的密碼保持私密。
如何選擇合適的成本因子?
成本因子應在保持雜湊產生速度可接受的前提下盡可能高。一個好的經驗法則:選擇使雜湊在伺服器上耗時約250-500毫秒的成本值。對於大多數現代系統,成本10-12是合適的。隨著硬體改進,應增加成本因子。
bcrypt可以用於加密資料嗎?
不可以,bcrypt是單向雜湊函數,不是加密演算法。它不能被逆向恢復原始密碼。它專為密碼驗證而設計——您對密碼進行雜湊並比較雜湊值,永遠不會解密。
bcrypt為什麼故意設計為慢速?
Bcrypt故意設計為慢速,使暴力破解和字典攻擊在計算上代價高昂。普通雜湊函數每秒可以處理數百萬個密碼,而bcrypt每秒只能處理幾百個,大幅增加攻擊的時間和成本。
如何驗證密碼與bcrypt雜湊是否匹配?
要驗證密碼,從儲存的雜湊中提取鹽值和成本因子,對輸入密碼使用相同參數執行bcrypt,然後將結果雜湊與儲存的雜湊進行比較。如果匹配,則密碼正確。此工具自動處理驗證過程。