• 授权协议:MIT
  • 开发厂商:-
  • 软件语言:JavaScript
  • 更新日期:2019-05-25
WebScrypt

一个浏览器版的 scrypt 算法,性能高、体积小。scrypt 简介scrypt是一种密码学 Hash 函数,专门用于 Hash 口令。不同于 PBKDF2、bcrypt 只有时间成本,scrypt 还可设定空间成本,该特征能使 GPU 等硬件设备破解 Hash 时瓶颈出现在内存上,从而降低硬件的计算优势。另外 scrypt 支持并发维度,可充分利用多线程提高工作量,使破解时间成倍增加。前端计算口令 Hash 函数的计算成本,决定了暴力破解的难度。但过高的成本,也会给服务器带来压力。因此通常只能在性能和安

WebScrypt 浏览器版的 scrypt 算法 项目简介

一个浏览器版的 scrypt 算法,性能高、体积小。scrypt 简介scrypt 是一种密码学 Hash 函数,专门用于 Hash 口令。不同于 PBKDF2、bcrypt 只有时间成本,scrypt 还可设定空间成本,该特征能使 GPU 等硬件设备破解 Hash 时瓶颈出现在内存上,从而降低硬件的计算优势。另外 scrypt 支持并发维度,可充分利用多线程提高工作量,使破解时间成倍增加。详细讲解前端计算口令 Hash 函数的计算成本,决定了暴力破解的难度。但过高的成本,也会给服务器带来压力。因此通常只能在性能和安全之间折中。事实上,口令 Hash 完全可在前端计算 —— 账号注册时,提交口令的 Hash 值(通常称之 DK);登录时,如果提交的 DK 相同,即可证明口令是相同的。// REG or LOGIN
dk = scrypt(password, username, cost ...)

submit(username, dk, ...)前端高成本 Hash 计算,不仅分担了后端压力,还能让原始口令数据更早消失,从而减少泄露环节,例如网络被窃听、服务端恶意程序等。这就是本项目的初衷:在不增加网站基础设施的前提下,大幅提升账号口令安全。其他的前端 scrypt 库project ver asm.js flash purejs thread progress size (gzip -6) WebScrypt latest ✔ ✔ ✘ ✔ ✔️ 2KB + 10KB / 54KB js-scrypt 1.2.0 ✔ ✘ ✘ ✘ ✘ 384KB scrypt-async-js 1.3.0 ✘ ✘ ✔ ✘ ✔ 3KB 备注:54KB 的是 flash.swf 文件,只有低版本浏览器才会使用单线程性能多线程性能测试环境:Chrome56、OSX 10.11.6、MacBookPro 2013(2 GHz Intel Core i7,8 GB 1600 MHz DDR3)

WebScrypt 浏览器版的 scrypt 算法 评论内容