关于此生成器
此预设创建一个 URL 安全的高熵值,用于 HMAC JWT 签名。这是一个开发者密钥,而非用户密码,且永远不会离开此浏览器。
此预设以url-safe模式启动,每次生成10个独立结果。所有可见设置均可调整,生成的值不会发送到PwdGen。
适用场景
- 为此特定用例创建新凭据
- 替换重复使用或弱密码
- 在安全存储前本地生成值
字母表大小、熵与暴力破解假设
理论熵上限计算公式为 H = L × log2(A),其中 L 为生成长度,A 为当前允许的字符数。
| 长度 | 字母表 | 搜索空间 | 熵上限 | 平均破解时间(10亿次/秒) |
|---|---|---|---|---|
| 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?
当验证者不应拥有私钥,或当多个服务需要公钥验证时,使用非对称签名。保护私钥,并通过受控的密钥标识符策略轮换密钥。