自 2010 年 · 每月支援超過 200 萬次工具執行
自 2010 年
加到 Chrome

我的工具箱

自動模式

尚未收藏任何工具。

升級為高級版
相關工具
Argon2雜湊生成器Whirlpool 雜湊生成器SHA256 雜湊生成器SHA1雜湊生成器SHA512雜湊生成器密碼強度測試器
主頁 > 哈希與校驗碼
 

Bcrypt 雜湊產生器和驗證器

輸入明文密碼與成本係數(4 至 15 輪),產生 bcrypt 雜湊,或把密碼與既有雜湊比對。結果含雜湊結構解析、安全性指標、成本與速度估算。

免費使用無需註冊即時出結果
Bcrypt 雜湊產生器和驗證器立即免費試用 ▼
💡 快速示例 — 點擊以填寫表單
UTF-8 · 最大 72 位元
0 / 72 位元
Bcrypt 限制
成本因子 (工作輪數)
12 ~ 250 毫秒
4567 891011 12131415
安全強度: 非常強
60 個字元 · 以 $2a/$2b/$2x/$2y 開頭

Embed Bcrypt 雜湊產生器和驗證器 Widget

Bcrypt 雜湊產生器和驗證器

歡迎使用 Bcrypt 雜湊產生器和驗證器 — 這是一款免費的線上工具,讓您可以使用可配置的成本因子產生符合密碼學安全標準的 bcrypt 密碼雜湊,並驗證純文字密碼是否與現有的 bcrypt 雜湊相符。無論您是在填充資料庫種子、調試登入流程、在系統間遷移使用者,還是學習自適應密碼雜湊,此工具都能為您提供即時結果,並對 bcrypt 如何結構化其 60 字元雜湊格式進行教育性的視覺化分解。

什麼是 Bcrypt 以及為什麼要使用它?

Bcrypt 是一種基於 Blowfish 加密的自適應密碼雜湊函數,由 Niels Provos 和 David Mazières 於 1999 年設計。與 SHA-256 或 MD5 等快速加密雜湊不同,bcrypt 被刻意設計得很慢,並包含一個可隨硬體提升而增加的可調 成本因子。每個 bcrypt 雜湊還包含一個唯一的隨機 鹽值,可防止攻擊者使用預先計算的彩虹表。OWASP 建議將 bcrypt 作為現代 Web 應用程式中存儲使用者憑據的四種可接受密碼雜湊演算法之一。

成本因子:Bcrypt 安全性的核心

成本因子(也稱為 工作因子輪數)控制雜湊的計算成本。它是按對數計算的:每增加 1,工作量就會翻倍。成本為 12 在典型的現代 CPU 上大約需要 250 毫秒;成本為 14 則大約需要 1 秒。下表顯示了各個成本級別的預估計算時間 — 請選擇一個對您的登入流程足夠快,但又慢到足以讓攻擊者感到挫敗的值。

成本 輪數 預估時間 強度 推薦用途
4 2^4 < 1 ms 不安全 僅供測試 — 切勿用於生產
5 2^5 2 ms 不安全 僅供測試 — 切勿用於生產
6 2^6 4 ms 不安全 僅供測試 — 切勿用於生產
7 2^7 8 ms 不安全 僅供測試 — 切勿用於生產
8 2^8 16 ms 遺留系統
9 2^9 31 ms 尚可 遺留系統
10 2^10 62 ms 良好 生產環境最低要求
11 2^11 125 ms 生產環境最低要求
12 2^12 250 ms 非常強 推薦預設值
13 2^13 500 ms 卓越 高安全性應用程式
14 2^14 1.00 秒 最高 最高強度
15 2^15 2.00 秒 最高 最高強度

Bcrypt 雜湊結構詳解

每個 bcrypt 雜湊長度固定為 60 個字元,並遵循固定的結構。了解每個部分可以更輕鬆地調試登入問題或在系統間遷移雜湊:

$2b$12$7i..qTPY7p4ZLvKIepRKwelX0JB55DviohJT.JYruzy4EN6cl.q8O   $2b$ → 演算法變體
  $12$ → 成本因子 (2^12 = 4096 輪)
  7i..qTPY7p4ZLvKIepRKwe → 22 字元的 base64 鹽值
  lX0JB55DviohJT.JYruzy4EN6cl.q8O → 31 字元的雜湊摘要

鹽值與摘要編碼

Bcrypt 使用自定義的 base64 字母表,與標準 base64 類似,但使用 ./ 代替 +/ 且不使用填充。這純粹是歷史原因,不影響安全性。鹽值為 16 個隨機位元組,編碼為 22 個 base64 字元;摘要為 23 位元組,編碼為 31 個字元。

Bcrypt 變體說明

在實際應用中,您會遇到幾種 bcrypt 前綴。它們產生的雜湊結構相同,但起源不同:

$2a$
原始 bcrypt 修訂版本,在遺留系統中無處不在,且舊程式庫仍在產生。與 $2b$ 兼容,可用於驗證。
$2b$
現代參考實現。修復了超過 255 位元組密碼的環繞錯誤。請將此用於新的雜湊。
$2x$
針對 2011 年符號擴展錯誤的 PHP 緊急修復。標記使用有缺陷的實現產生的雜湊,以便進行遷移。
$2y$
2011 年錯誤後修正的 PHP 特定版本。對於 ASCII 密碼,其功能與 $2b$ 完全相同。

如何使用此工具

  1. 選擇模式: 選擇產生雜湊來建立新的 bcrypt 雜湊,或選擇驗證雜湊來檢查密碼是否與現有雜湊相符。
  2. 輸入密碼: 在輸入欄位中輸入純文字密碼。如果您的密碼接近 bcrypt 的 72 位元限制,位元計量器會發出警告。
  3. 設置成本因子: 在產生模式下,拖動滑塊選擇 4 到 15 之間的成本因子。預估計算時間和安全評級會即時更新。
  4. 貼上要驗證的雜湊: 在驗證模式下,貼上現有的以 $2a$$2b$$2x$$2y$ 開頭的 60 字元 bcrypt 雜湊。
  5. 執行並讀取結果: 點擊操作按鈕。產生模式返回帶有顏色標記結構分解的雜湊;驗證模式顯示巨大的「相符」或「不相符」指示器,並顯示原始成本因子。

72 位元密碼限制

Bcrypt 建立在 Blowfish 密鑰設置階段之上,該階段僅消耗密碼的前 72 個位元組。超過 72 個位元組的密碼會被舊程式庫靜默截斷,或被新程式庫直接拒絕。請注意,計算的是位元組而非字元 —— 單個表情符號佔用 4 個位元組,大多數非 ASCII 字元在 UTF-8 中佔用 2-4 個位元組。如果您的應用程式接受任意長度的密碼,標準的緩解措施是在傳遞給 bcrypt 之前先用 SHA-256 對密碼進行預雜湊,並對摘要進行 base64 編碼;這會產生固定的 44 位元組輸入,完全符合限制。

何時選擇 Bcrypt vs. Argon2 vs. Scrypt

來自 OWASP 和 IETF (RFC 9106) 的現代密碼雜湊建議列出了四種可接受的演算法:Argon2id(新應用程式的首選)、bcrypt、scrypt 和 PBKDF2。在以下情況下選擇 bcrypt:

  • 您需要廣泛的兼容性 — 每一種主流語言都有成熟的 bcrypt 程式庫
  • 您正在處理一個已經在使用 bcrypt 的現有系統
  • 您想要一個經過 25 年以上密碼分析考驗的成熟演算法
  • 記憶體困難型雜湊(Argon2id, scrypt)在您的環境中不切實際

如果您正在構建一個沒有兼容性限制的新系統,請選擇 Argon2id — 它是密碼雜湊競賽(Password Hashing Competition)的現代獲勝者,提供了 bcrypt 無法比擬的抗 GPU 和 FPGA 攻擊能力。

實際應用場景

對於開發人員

  • 為開發資料庫提供逼真的測試使用者種子,而無需運行完整的註冊流程
  • 為執行登入路徑的集成測試產生固定裝置數據
  • 通過針對使用者報告的密碼驗證生產環境雜湊來調試登入失敗
  • 在下次登入時通過重新雜湊將舊的 $2a$ 雜湊遷移到 $2b$
  • 通過測量實際計算時間來為您的生產環境調整成本因子

對於安全工程師

  • 驗證第三方身份驗證服務是否按照其聲稱的成本因子產生雜湊
  • 通過檢查生產樣本中的雜湊變體和成本來審計密碼存儲
  • 構建培訓教材,展示 bcrypt 的結構如何使其具有抗彩虹表能力

對於學習者

  • 將同一個密碼產生兩次,觀察鹽值如何產生不同的雜湊
  • 嘗試不同的成本因子,親身體驗工作量翻倍的效果
  • 驗證已知雜湊,了解 bcrypt 如何在雜湊候選密碼之前提取成本和鹽值

常見問題解答

我應該為 bcrypt 使用什麼成本因子?

OWASP 目前建議成本因子至少為 10,12 是一個不錯的現代預設值,在典型伺服器上大約需要 250 毫秒。成本是按對數計算的,因此每增加 1,工作量就會翻倍。成本 14 適用於高安全性應用程式,而成本 15 是互動式登入的實際上限。切勿在生產環境中使用低於 10 的成本。

$2a$、$2b$、$2x$ 和 $2y$ 有什麼區別?

這四種都是通過前綴區分的 bcrypt 變體。$2a$ 是原始修訂版本;$2x$ 和 $2y$ 是 2011 年發現符號擴展錯誤後針對 PHP 的緊急修復;$2b$ 是修復了長密碼環繞錯誤的現代參考實現。使用任何變體產生的雜湊仍然是可以驗證的。現代程式庫預設產生 $2b$,您應該優先將其用於新的雜湊。

我輸入的密碼會被傳送到伺服器嗎?

表單通過 HTTPS 在伺服器端處理以執行 bcrypt 運算,但密碼和產生的雜湊都不會被記錄或存儲 — 每個請求處理後即被捨棄。如果對測試密碼有絕對的疑慮,請切勿將真實的生產環境密碼貼上到任何線上工具。請將此工具用於臨時測試密碼或在本地開發環境中使用。

為什麼 bcrypt 有 72 位元的密碼限制?

Bcrypt 演算法建立在 Blowfish 密鑰設置階段之上,該階段僅消耗輸入的前 72 位元。超過 72 位元的密碼會被舊程式庫靜默截斷,或被新程式庫拒絕。為了支援任意長度的密碼,在傳遞給 bcrypt 之前,請先使用 SHA-256 進行預雜湊並對摘要進行 base64 編碼。當您的密碼超過限制時,此工具會發出警告。

我可以驗證由另一個 bcrypt 程式庫產生的雜湊嗎?

可以。所有 bcrypt 實現都遵循相同的傳輸格式($variant$cost$salt+digest,共 60 個字元)並產生可互操作的雜湊。只要變體前綴被識別,由 Node.js bcrypt、PHP password_hash、Python passlib、Spring Security 或任何合規程式庫製作的雜湊都可以在這裡正確驗證。

為什麼兩次產生同一個密碼會得到不同的雜湊?

Bcrypt 會為每個雜湊自動產生一個新的隨機 16 位元組鹽值。鹽值會混合到演算法中並嵌入到輸出中,因此同一個密碼的兩個雜湊幾乎永遠不會相同。驗證之所以有效,是因為 checkpw 會從存儲的雜湊中提取成本和鹽值,並在使用這些確切參數重新運行 bcrypt 之後比較摘要。

我可以從 bcrypt 雜湊中找回原始密碼嗎?

不能。Bcrypt 是一個單向函數 — 沒有解密操作。從雜湊中找回原始密碼的唯一方法是猜測密碼,並使用相同的成本和鹽值通過 bcrypt 運行它們,直到摘要相符,這正是攻擊者在暴力破解攻擊中所做的。Bcrypt 自適應成本的全部目的就是讓這些猜測的代價高昂到令人望而卻步。

它可以在行動裝置上運行嗎?

可以。界面完全採用響應式設計,適用於智慧型手機、平板電腦和桌上型電腦。模式切換、成本滑塊和結果面板都能自動適應窄螢幕。

額外資源

引用此內容、頁面或工具為:

"Bcrypt 雜湊產生器和驗證器" 於 https://MiniWebtool.com/zh-tw/bcrypt-雜湊產生器和驗證器/,來自 MiniWebtool,https://MiniWebtool.com/

由 miniwebtool 團隊製作。更新日期:2026年4月26日

哈希與校驗碼:

熱門與最新工具:

SHA3-512 雜湊生成器BLAKE2B 雜湊生成器MD5雜湊生成器查看全部 →
主頁 > 哈希與校驗碼 > Bcrypt 雜湊產生器和驗證器