先运行已知匹配的示例
载入示例后先看替换预览,再点应用。示例会切到校验模式,填入虚构密码和已知匹配的 bcrypt 记录;修改一个字符后再校验,可以直接观察不匹配的状态。
- 应用前不会改动当前输入;撤销会同时恢复输入、参数和结果。
Hash / 密码学辅助
只输入测试密码。生成带盐的记录,或切换到校验模式检查已有哈希。
仅输入测试数据。密码只在当前页面和 Worker 内存中处理,不上传,也不写入浏览器存储。
测试默认成本为 10,允许 4–14;工作量按 2^cost 增长。此默认值不是生产安全建议。
随机模式每次生成 16 字节盐。固定盐:bcrypt 为 16 字节,其余为 8–64 字节;不含空格或 0x 前缀。
bcrypt 和 Argon2id 使用编码串;scrypt/PBKDF2 使用本站 JSON,不是各框架通用的存储格式。
输入测试密码后,执行所选操作。
更换密码库后,测试账号突然无法登录,未必是算法出了问题。密码哈希生成把候选密码、盐和成本参数放在同一处,便于确认到底是输入字节不同,还是存储格式与目标库的要求不一致。
校验始终读取记录中携带的算法、盐和参数,不受生成面板当前选项影响。先用已知测试数据建立可重复的结果,再与应用里的实现逐项核对,能减少反复调整参数却找不到差异的情况。
密码哈希生成默认在每次运行时抽取新的 16 字节随机盐,所以同一个测试密码可以得到不同的记录。要做跨库对照时,切换固定盐并填写十六进制字节,即可重复相同计算。
密码不匹配表示已按存储参数完成计算,只是结果不同。格式错误或成本超限则会在计算前被拒绝。结果区保留算法、盐和成本,帮助你判断下一步应检查密码,还是先修正测试记录。
载入示例后先看替换预览,再点应用。示例会切到校验模式,填入虚构密码和已知匹配的 bcrypt 记录;修改一个字符后再校验,可以直接观察不匹配的状态。
新建测试记录时切到生成模式。随机盐每次都会变化,固定盐输入的是十六进制字节,不能把普通单词直接当成盐。bcrypt 固定盐必须是 16 字节,其余算法接受 8–64 字节。
Ctrl/Cmd + Enter 执行当前模式。改动密码、记录或参数后,旧结果立即过期并禁用复制、下载;只有成功生成或校验匹配后才恢复导出。
支持 bcrypt 校验与生成、scrypt、Argon2id 和 PBKDF2-HMAC-SHA-256。每次只计算一种算法,便于建立单独的测试样本;本页不把多个算法同时运行的耗时当成安全排名。
bcrypt 记录包含成本因子和盐,Argon2id 采用版本 19 的 PHC 编码。scrypt 与 PBKDF2 输出带版本标识的本站 JSON,包含参数、saltHex 与 hashHex,避免只有摘要却丢失盐和迭代次数。
引擎计算前会验证资源范围,记录中的成本参数同样受限。毫秒数是当前设备本次运行的观察值,可能包含首次加载引擎的时间;它适合对照自己的测试,不能推导服务器的并发容量。
bcrypt 是密码哈希算法,不提供可逆解密。校验需要你提供候选密码,再按存储记录里的盐和成本重新计算。匹配只说明这组候选输入得到相同结果,不代表密码足够强,也不是泄露检查。
成本因子增大会增加计算工作量,也可能拖慢登录和占用更多服务器资源。本页将 bcrypt 限在 4–14,默认 10 只是浏览器测试参数。正式系统应结合使用的库、目标设备、并发量和可接受延迟进行实测,不能照搬本页耗时决定上线值。
这是 bcrypt 输入处理的长度边界,单位是字节而不是字符。中文和表情在 UTF-8 中会占多个字节,因此字符少也可能超限。本工具在生成和校验时都拒绝超过 72 字节的密码,不执行截断或自动预哈希,以免验证了另一份输入。
可以测试常见的 $2a$、$2b$ 和 $2y$ 完整 bcrypt 记录,但成本仍需在 4–14 内,编码也必须合法。如果原应用额外做了预哈希、字符规范化或混入 pepper,需要在原应用里复现这些步骤。本页不会猜测那些应用专属处理。
默认随机盐每次生成都会更新。盐参与计算,因此相同密码会得到不同记录;各记录仍可用自己携带的盐校验同一个密码。需要重现结果时,切换固定盐,并保持密码字节、盐、算法及成本参数全部一致。
还有疑问?