在浏览器里生成和校验 bcrypt、scrypt、Argon2 密码哈希,参数低于 OWASP 建议时会给出提示。校验时还能识别 Django 的 PBKDF2 哈希。
选择「生成哈希」,再在「算法」里选 bcrypt、scrypt 或 Argon2。
调整参数(bcrypt 的「成本因子」,scrypt 的 N、r、p,Argon2 的变体、「内存」「迭代次数」「并行度」),留意出现的警告。
输入「密码」并点「生成哈希」,复制哈希字符串;scrypt 和 Argon2 还会给出原始哈希和盐值。
要校验密码,切换到「校验哈希」(或点「校验这个哈希」),粘贴「哈希字符串」,填入「要校验的密码」后点「校验」。
不会。哈希在你设备上的后台线程里计算,密码和哈希都不保存也不发送。
每次都会用新的 16 字节随机盐(bcrypt 自己生成盐)。盐保存在哈希字符串里,所以校验照样能通过。只有在需要复现已知哈希时才用「自定义」盐。
新系统推荐 Argon2id,OWASP 给出的最低配置是 m = 19 MiB、t = 2、p = 1;scrypt 推荐 N = 2^17、r = 8、p = 1;bcrypt 的成本因子至少为 10。低于这些值工具会提示。
bcrypt($2a$、$2b$、$2y$)、Argon2id/2i/2d 的 PHC 字符串、scrypt($scrypt$ 和 $s0$)以及 Django 的 pbkdf2_sha256 / pbkdf2_sha1。Linux crypt 哈希($1$、$5$、$6$、$y$)、Apache $apr1$ 和普通 MD5/SHA 摘要能识别,但不支持校验。
bcrypt 只使用密码的前 72 个字节,后面的部分会被忽略,出现这种情况时工具会提醒。Argon2 和 scrypt 没有这个限制。
不能,它只判断你输入的密码是否匹配。密码哈希本来就设计成单向且计算缓慢,所以生成时要等一会儿,可以看计时,也可以点「取消」。