關於此產生器
此預設會為 HMAC JWT 簽署建立一個 URL 安全的高熵值。這是開發者密鑰,而非使用者密碼,且絕不會離開此瀏覽器。
此預設以 url-safe 模式啟動,每次產生 10 個獨立結果。所有可見設定均可調整,產生的值不會傳送至 PwdGen。
使用時機
- 為此特定使用案例建立新憑證
- 取代重複使用或弱密碼
- 在安全儲存前本地產生值
字母表大小、熵值與暴力破解假設
理論熵值上限計算公式為 H = L × log2(A),其中 L 為產生的長度,A 為目前允許的字元數。
| 長度 | 字母表 | 搜尋空間 | 熵值上限 | 每秒 100 億次猜測的平均時間 |
|---|---|---|---|---|
| 64 | 64 | 6464 | 384.0 位元 | 6.24e97 years |
重要提示:這些是針對均勻隨機值的數學估算。必要位置、限制數量、重複密碼、字典模式、外洩憑證以及實際密碼雜湊成本都可能大幅改變結果。此數字並非安全保證。
JWT 簽署密鑰部署指南
對於 HS256,請使用至少 256 位元的均勻隨機金鑰材料。HS384 和 HS512 使用不同的 SHA-2 輸出大小,但選擇較長的演算法無法修補弱驗證、外洩金鑰或演算法混淆錯誤。
等效的終端機與 Node.js 產生方式
openssl rand -hex 32 import { randomBytes } from 'node:crypto';
const jwtSecret = randomBytes(32).toString('hex'); 儲存與輪換
- 將簽署金鑰保留在 Git、前端套件、URL、分析工具和應用程式日誌之外。
- 使用密碼管理員、Vault、KMS 或受保護的環境變數。
- 在輪換金鑰時使用受控的 kid 策略。
- 當驗證者僅需持有公鑰時,選擇 RS256 或 ES256。
Hex、Base64 和 Base64URL 是編碼方式,而非加密。安全性來自隨機位元組以及簽署金鑰的保護方式。
如何安全使用結果
- 檢查目標的當前密碼規則
- 使用唯一結果,並在可用時啟用 MFA
- 將復原碼與密碼分開儲存
產生與隱私方法
此預設使用瀏覽器 Web Crypto API 進行隨機選取。重新產生、變更設定、選取和複製結果不會將產生的憑證傳送至 PwdGen。密碼破解時間估算器也在本地端執行,且為估算值,並非保證。
Jwt 密鑰產生器 FAQ
HS256 JWT 密鑰應該多長?
對於 HS256,請使用至少 256 位元的均勻隨機金鑰材料。此頁面產生一個 64 字元的 Base64URL 字母表值,在均勻產生時提供更大的理論搜尋空間。
JWT 密鑰應該儲存在環境變數中嗎?
環境變數比原始碼安全,但仍可能透過程序檢查、日誌或部署工具外洩。對於生產系統,受管機密儲存或 KMS 更為可取。
何時應該使用 RS256 或 ES256 而非 HMAC?
當驗證者不應擁有私密簽署金鑰,或當多個服務需要公開金鑰驗證時,請使用非對稱簽署。保護私密金鑰,並使用受控的金鑰識別符策略輪換金鑰。