zh-Hans v
en zh tw

bcrypt 生成与验证

使用随机盐值生成 bcrypt 哈希,或验证已有哈希;检查 UTF-8 字节长度,并明确选择成本参数。

生成或验证一个密码

生成模式返回含成本和盐值的标准 $2a$ bcrypt 字符串。验证模式从已有 $2a$、$2b$ 或 $2y$ 字符串读取参数,只返回是否匹配。matches=false 表示计算完成但密码不匹配。

默认成本为 12,默认生成 16 字节密码学随机盐值。自定义盐必须为 32 个十六进制数字,适合复现测试向量或既有系统;低于 10 的成本会显示诊断。

72 字节边界

密码按 UTF-8 编码,不去空格、不做 Unicode 规范化。超过 72 字节直接报错,不静默截断;一个汉字通常占三个字节。支持空密码和内部 NUL 字节;这些情况使用兼容的 bcryptjs 实现,避免 WASM 包装的空输入限制及 NUL 截断。

生成和验证成本均限于 4–16,在可取消的 Worker 中执行,最长 30 秒。这是浏览器资源限制,并非 bcrypt 格式的上限;生产认证服务仍需独立测量成本。

参考

常见问题

bcrypt 能解密密码吗?

不能。bcrypt 是密码哈希;验证会用候选密码重新计算并比较结果。

为什么中文密码更容易达到限制?

限制按编码后的字节计算,而非显示字符数;工具检查实际 UTF-8 字节数。

输入会上传吗?

不会。处理在浏览器中执行,引擎从本站加载;工具不将输入发送至处理 API,也不保存输入。清除可移除可见输入与结果。

其他语言