数据安全提示: 所有计算均在您的浏览器本地完成,密码和盐值不会上传到服务器。

Scrypt 密码哈希计算器

基于 scrypt-js
输入类型:
输出格式:
当前操作:密码 → Scrypt哈希 (hex)

盐值 (Salt)

输入密码

长度: 19 熵值: ~95位
密码强度
N (成本因子) 16384
2^10=1024 2^20=1M
r (块大小) 8
p (并行) 1
输出长度 32
内存需求: ~16 MB 估计时间: ~1 秒
~16 MB

Scrypt 哈希结果

计算结果将显示在这里...
等待输入... 计算时间: 0.00 秒

Scrypt 算法原理

Scrypt = PBKDF2 + 内存硬混合 (ROMix)

① 初始化

PBKDF2-HMAC-SHA256(密码, 盐值, 1, p×128×r) 生成初始块。

② 内存填充

生成 N 个块 (每个 128×r 字节) 存储在内存中。

③ 随机访问

反复读取内存块并混合,造成大量内存依赖。

④ 最终混合

再次使用 PBKDF2 生成指定长度的派生密钥。

安全特性

  • 内存硬特性 — 强制消耗大量内存,GPU/ASIC 攻击成本激增
  • 抗 GPU 攻击 — 显存限制导致并行度低
  • 抗 ASIC 攻击 — 大容量内存集成困难且昂贵
  • 可调节参数 — 随硬件发展可逐步增加 N / r / p
  • 内置盐值 — 防止彩虹表预计算

使用示例

"MySecurePassword123" (默认参数)
"password" (弱密码示例)
"CorrectHorseBatteryStaple" (高熵)

实现指南

✅ 最佳实践

  • 每个密码使用唯一随机盐值 (≥16字节)
  • 推荐 N=16384, r=8, p=1 (交互式登录)
  • 定期评估并提高参数
  • 在后端执行 Scrypt,避免浏览器过载

❌ 常见错误

  • 盐值重复或过短
  • 参数过低 (N<2^14) 无法抵抗暴力破解
  • 前端设置过高参数导致页面卡死
  • 不存储盐值和参数导致无法验证

快速提示

  • 盐值自动生成,也可自定义
  • 内存需求 = N × r × 128 字节
  • 滑块实时调整参数
  • 结果一键复制
  • 完全本地计算

参数推荐

交互登录 N=16384, r=8, p=1
敏感数据 N=65536, r=8, p=1
文件加密 N=262144, r=8, p=1
高安全 N=1048576, r=8, p=1

技术信息

标准:RFC 7914
库:scrypt-js 3.0.1
设计者:Colin Percival
年份:2009

需要其他哈希?

免费为您开发定制工具