安全 / 密码

bcrypt哈希生成器和检查工具

选择所需的cost值生成bcrypt密码哈希,或检查密码是否匹配现有哈希,全程在浏览器中完成。

bcrypt哈希生成器和检查工具: bcrypt由Niels Provos和David Mazières于1999年设计,使用随机16-byte盐值运行2^cost次Blowfish密钥调度,因此攻击者每次猜测都必须付出同样缓慢的计算代价。结果会将版本、cost值、盐值和哈希保存在一个60字符的字符串中。此处的实现已与Python bcrypt程序包进行校验,包括Unicode和超长密码。 完全在浏览器中本地运行,文件不会上传到服务器。

使用次数
在浏览器中
费用
免费·无需注册
可用性
可直接使用
bcrypt生成器本地处理

完全在浏览器中运行

所有操作都在此浏览器中运行;密码和哈希绝不会发送到任何地方。成本10–12适合大多数登录场景:每增加一步,所需时间就会翻倍。

安全存储密码

绝不要以明文存储密码,也不要使用MD5或SHA-256等快速哈希,因为显卡每秒可以尝试数十亿次。bcrypt、scrypt和Argon2经过刻意减速并加入盐值,因此被盗数据库会难以破解得多。

对于Web服务器登录,htpasswd生成器会写入完整的用户行;要生成密码本身,请使用密码生成器。

读取bcrypt哈希

在$2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW中,2b是版本,12是成本参数,接下来的22个字符是盐值,最后31个字符是哈希。由于盐值和成本参数会与哈希一起保存,服务器可以提高新密码的成本参数,而不会影响旧密码。

使用方法

  1. 输入密码并选择cost值;10到12适合大多数网站。
  2. 生成哈希,然后将其复制到数据库或配置中。
  3. 要测试已存储的哈希,请切换到检查模式,粘贴哈希并输入密码。

隐私与限制

密码和哈希会保留在浏览器中;不会发送到服务器。

相关工具

常见问题

应该使用哪个cost值?

使用服务器在每次登录时能够承受的最高值,通常为10–12;OWASP建议至少使用10。cost值每增加1,耗时就会翻倍,因此请将此处显示的耗时与速度最慢的服务器进行比较。

$2a$、$2b$和$2y$有什么区别?

对于普通密码,它们生成的哈希完全相同。$2b$表示OpenBSD在2014年修复了超长密码问题,$2y$表示PHP在2011年修复了另一个实现中的错误;PHP和Apache的htpasswd会写入$2y$,大多数其他库会写入$2b$。

为什么我的长密码只输入开头部分也能通过?

bcrypt只使用前72 bytes,许多库会静默截断更长的密码;发生这种情况时,此工具会发出警告。英语字母以外的字符每个会占用2–4 bytes。

免费工具·使用在浏览器中次·无需账户