Each generation uses a fresh random salt, so the hash changes every time — that's expected with bcrypt.
如何使用Bcrypt 哈希生成器
- 输入密码/文本进行哈希计算。
- 选择成本因素 - 10-12 是安全性和速度的标准平衡。
- 生成 bcrypt 哈希 - 请注意它包括盐和成本,并且每次都不同。
- 在生产中,使用框架的 bcrypt 函数 - 切勿使用以下方式存储密码MD5/SHA。
Bcrypt 哈希生成器是什么?
bcrypt 哈希生成器生成 bcrypt 哈希 - 专门用于存储密码的算法。与一般哈希(MD5、SHA-256)不同,bcrypt故意变慢并且自动加盐:每个哈希需要可调的工作量(使得大规模破解成本高昂)并嵌入独特的随机盐(使得预先计算的彩虹表毫无用处)。
这种设计就是重点。快速哈希对于校验和来说是一种优点,但对于密码来说却是一场灾难——GPU 每秒尝试数十亿次 SHA-256 猜测。 Bcrypt 故意放慢速度,将攻击者限制在每秒数千次,将“在几分钟内破解”变成“在几年内破解”。
关于Bcrypt 哈希生成器
输入文本并生成其 bcrypt 哈希值,并具有可选择的成本因子(工作级别)。
开发人员需要的概念:成本因子(循环)- 每个增量都会使工作量加倍; 10-12 是当前标准,平衡安全性与服务器负载,并且可以随着硬件的改进而向上调整,而无需更改代码; 内置盐 - bcrypt 为每个哈希生成并嵌入一个唯一的盐,因此相同的密码每次的哈希值都不同(这就是“密码”的两个哈希不匹配的原因 - 以及彩虹表无济于事的原因);和验证 - 你永远不会解密 bcrypt 哈希(它是单向的);你重新哈希登录尝试并让 bcrypt 的比较函数检查它。
bcrypt 适合和不适合的地方:它用于密码存储 - 数据库中的用户帐户密码。它不是为了数据完整性(使用 SHA-256)、API 签名(使用 HMAC)或任何需要速度的东西。每个框架都内置了 bcrypt(PHP 的 password_hash 以及其他地方的等效项)——在生产中使用它们;该生成器用于学习、测试和一次性哈希。现代替代品(Argon2、scrypt)也很强大; bcrypt 仍然是可靠的、普遍支持的默认设置。