npm 包 scryptsy 使用教程

阅读时长 4 分钟读完

在前端开发中,为了提高用户数据加密安全性,我们需要使用一些加密算法。而 scryptsy 是一种常用的加密算法,可以用来加密密码等敏感数据。本篇文章将介绍如何使用 npm 包 scryptsy 进行加密。

什么是 scryptsy?

简单的说,scryptsy 是一种密码算法,这种算法的特点是可以更好地抵御针对 ASIC 显卡的攻击,所以被称为“加强版的 bcrypt”。

scryptsy 基于 JavaScript 实现,是 Node.js 中的一个开源库,支持通过密码生成散列值,同时也支持使用散列值比较原密码是否正确。

安装 scryptsy

首先,我们需要在项目文件夹下安装 scryptsy。

在终端中执行以下命令:

使用 scryptsy

导入 scryptsy:

生成散列值

在使用 scryptsy 生成散列值之前,我们需要先设置一些参数:

  • password: 待加密的密码
  • salt: 加密盐,用于防止彩虹表攻击。它应该是大于等于 16 个字节的随机字符串。在 scryptsy 中,这个参数的长度应该是 64。
  • N: CPU 运行计算量,它的大小应该为 2 的幂,建议设置为 16384。
  • r: 质素运算量,它的大小应该为 8。
  • p: 并行性,它的大小应该为 1。

输出结果:

验证密码

使用 scryptsy 进行密码验证的过程,主要是使用用户输入的密码以及存储在数据库中的哈希值,在计算出哈希值的过程中使用哈希值所提供的其他信息。

-- -------------------- ---- -------
----- ---- - ------------------------------------------------------------------- -- ------------
----- -------- - ------ ------- -- -------

----- ---- - ----------------- ---- -- --------
----- - - ------ -- -----
----- - - -- -- -----
----- - - -- -- ---

----- ------- - ------------------ ----- -- -- -- ---- -- ------
-- ----- --- ------------------------ - -- ------
  --------------------- -- ----------
- ---- - -- ------
  --------------------- -- ------------
-

预编译参数

在每次计算哈希值时,都需要提供一组参数。对于频繁调用的情况,每次重复计算这些参数是有浪费的,因此可以使用 scryptsy 的预编译参数特性。

-- -------------------- ---- -------
----- - - ------ -- -----
----- - - -- -- -----
----- - - -- -- ---

----- ------- - ------------------ -- --- -- -------

----- -------- - ------ ------- -- ------
----- ---- - ------------------------------------------------------------------- -- ---

----- ---- - ------------------ ----- --------- -- -----
---------------------------------- -- -----

小结

本文介绍了 scryptsy 的特点以及如何使用它来生成散列值和验证密码。使用 scryptsy 可以提高密码加密的安全性,同时预编译参数也可以提高效率。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/57434

纠错
反馈