Bcrypt/Argon2 哈希
密码哈希生成与校验(hash-wasm),WASM 本地计算。
基于 hash-wasm(WASM 本地计算),密码与哈希不上传。首次使用需加载算法模块。
使用说明
这个工具解决什么问题
用户密码入库要哈希,排查登录问题要验证旧哈希,服务器上各语言工具口径不一,第三方在线生成器又怕明文外泄。这个工具把 bcrypt 与 Argon2id 的生成和校验都搬进浏览器:hash-wasm 纯 WASM 本地计算,盐用 Web Crypto 现场生成,密码与哈希全程不出设备。生成、校验两个模式切换,注册逻辑联调与线上问题排查都用得上。
核心能力
双算法:bcrypt 与 Argon2id,当前主流的两种密码哈希选择。bcrypt 口径:轮数 4-15 可调默认 10,输出 $2a$ 前缀的 60 字符串,16 字节盐现场生成。Argon2id 默认档位:迭代 2、内存 19 MiB、并行度 1,对齐 OWASP 推荐。校验模式:粘贴哈希验证密码是否匹配,直接给出匹配与否的结论。纯本地计算:WASM 在浏览器内跑,密码与哈希不上传。
使用建议
新系统优先 Argon2id,存量系统维持 bcrypt 即可,不要自行发明哈希方案;rounds 调档前先实测耗时,登录接口别为安全把响应拖到秒级;校验失败先确认哈希串完整,bcrypt 应以 $2 开头共 60 字符,Argon2id 以 $argon2id$ 开头;bcrypt 最长 72 字节密码,超长部分会被截断,重要口令别踩这条线。
常见问题
生成结果每次都不一样,是坏了吗?
正常。bcrypt 与 Argon2id 每次都用 Web Crypto 现场生成的 16 字节随机盐,盐不同哈希就不同,这正是抗彩虹表的设计。校验时用 encoded 串里自带的盐重算,结果一致即通过。
rounds 调大意味着什么?
bcrypt 每加 1 轮计算时间翻倍。默认 10 是常规档位;4-15 范围内可调,低于 4 抗碰撞不足,高于 15 单次计算可能到分钟级,页面会明显变慢。
Argon2id 的默认参数是什么?
迭代 2 次、内存 19456 KiB(即 19 MiB)、并行度 1,对齐 OWASP 推荐的保守档位。Argon2 以内存困难著称,内存参数别压得太低,否则抗专用芯片攻击的能力打折。
首次点击为什么卡一下?
算法模块(WASM)按需加载,首次使用要下载编译一次,属正常现象;之后计算直接走本地 WASM,密码与哈希全程不上传。