Bcrypt哈希生成器
使用可配置的成本因子生成bcrypt密码哈希,并可选地与现有哈希进行比较。完全在浏览器中运行 - 不会发送任何内容到服务器。
输入
每次增加都会使工作因子翻倍。10-12是常见的默认值;数值越高速度越慢,但抵抗暴力攻击的能力越强。
Uses bcrypt's own comparison, so it works regardless of the compared hash's cost factor or salt.
输出
仅当提供要比较的哈希时才显示。
使用此工具的更多方式
REST API
curl -X POST https://api.iotools.cloud/v1/tool/bcrypt-hash-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messageToHash": "correct horse battery staple",
"saltRounds": "10",
"expectedHash": ""
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `bcrypt-hash-generator` tool (Bcrypt Hash Generator) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/bcrypt-hash-generator/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Bcrypt哈希生成器 — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次 API/MCP 调用费用 | 5 积分起 |
|---|---|
| 需要更多积分? | 查看定价 |
也可通过
使用指南
Bcrypt是大多数Web框架在存储密码时采用的哈希算法,因为它故意设计为缓慢的,并且其成本因子可以随着硬件变快而向上调整。此工具可从任何文本计算真实的bcrypt哈希,并可以验证您已有的哈希是否与同一文本匹配。
所有操作都通过bcryptjs在您的浏览器中运行 — 您在此处输入的任何内容都不会被发送到任何地方。
使用方法
将您想要哈希化的密码或文本粘贴到输入框中。成本因子设置bcrypt的工作因子:每个步骤将计算量加倍,所以12大约需要11的两倍时间。10-12是当今Web应用的常见默认值;仅当您已基准测试且服务器可以承受每次登录的额外CPU时间时,才使用更高的值。
每个哈希都使用新的随机盐 — 这是bcrypt的正确做法,这也是为什么对同一文本进行两次哈希会给您两个外观不同的哈希的原因。两者都同样有效;bcrypt本身的比较逻辑从哈希本身读回盐,因此您永远不需要单独跟踪它。
要验证哈希而不仅仅生成哈希,请将其粘贴到"与现有哈希比较"字段中以及纯文本。工具报告匹配或不匹配 — 即使哈希是用与滑块当前设置不同的成本因子创建的,这也有效。
为什么每次哈希相同的密码都会产生不同的结果?
因为为每个哈希生成新的随机盐,这使bcrypt抵抗彩虹表攻击 — 具有密码"password123"的两个用户最终会有完全不同的存储哈希。使用比较字段检查相等性,永远不要直接字符串比较两个哈希。
我应该实际使用什么成本因子?
足够高,以使哈希在您的服务器上花费明显的秒数分数,因为这就是使暴力破解也变得昂贵的原因。10是bcrypt的传统默认值;许多当前指南建议使用12。此工具限制为14,因为它在浏览器中同步计算哈希,且更高的因子开始明显冻结页面 — 您运行编译后的bcrypt而不是纯JavaScript的后端通常可以在没有相同成本的情况下更高。
这与我的后端使用的bcrypt相同吗?
是的 — bcryptjs是同一算法的兼容纯JavaScript实现,其输出是标准bcrypt哈希(带有$2a$/$2b$前缀),任何语言中的任何bcrypt库都可以验证,反之亦然。
我能用它来哈希化密码以外的东西吗?
可以,但bcrypt是为这一个工作构建的 — 短秘密的缓慢、加盐、单向哈希。对于通用哈希化(校验和、文件完整性、非秘密数据),请改用SHA或MD5哈希生成器,它们是快速的而不是故意缓慢的。