什么是 argon2
argon2 是一个高度安全的密码哈希函数。它是由密码学专家贡献的设计的,并在 2015 年被公开发表。它已被证明比前基于 bcrypt 和 scrypt 的方案更加安全。
argon2 并不是一个 JavaScript 包,它是一个跨平台的 C 库。但是,我们可以通过安装 argon2 的 npm 包,使用 JavaScript 调用 C 库提供的接口。
安装 argon2
我们可以用 npm 安装 argon2:
--- ------- ------
安装成功后,即可使用 argon2 的函数来计算哈希值。
使用 argon2
argon2 接受一个密码和一些选项。它将计算出一个哈希值和一个盐值。盐值是随机生成的,且每个哈希值都具有唯一的盐值。
简单示例
下面是一个使用 argon2 计算密码哈希值的简单例子:
----- ------ - ------------------ ----- -------- ----- - ----- ---- - ----- ------------------------ ------------------ - ------
输出结果如下:
------------------------------------------------------------------------------------------------
参数说明
下面我们来详细说明一下 argon2 的参数:
--------------------- --------
password
: 要计算哈希值的密码,必须是字符串类型。options
: 计算哈希值的选项,必须是一个对象。
选项对象包含以下属性:
saltLength
: 盐值的长度(字节数),默认为 16 字节。timeCost
: 计算哈希值的时间(迭代)次数,即t
参数,默认为 3。memoryCost
: 内存使用量(单位为 KiB),即m
参数,默认为 4096。parallelism
: 并行度(线程数),即p
参数,默认为 1。type
: 哈希类型,可以是argon2i
(使用数据相关内存-hard)或argon2d
(使用数据独立的内存-Hard),默认为argon2id
。version
: argon2 的版本号,默认为 0x13,在 argon2i 和 argon2d 中无效,在 argon2id 中按如下方式计算:version = (version_major * (1 << 16)) | (version_minor * (1 << 8)) | version_patch。
示例代码
下面是一个更加复杂的示例代码,它演示了如何使用不同的选项生成哈希值:
----- ------ - ------------------ ----- -------- ----- - ----- -------- - ----------- -- -- -- ----- -------- - - ----------- ----- --------- -- ------------ -- ----- ---------- ----------- -- -- ----- ----- - ----- --------------------- ---------- ----------------- ---- ------- -- -- -- ----- -------- - - ----------- ----- --------- -- ------------ -- ----- ----------- ----------- -- -- ----- ----- - ----- --------------------- ---------- ----------------- ---- ------- - ------
总结
argon2 是一种高度安全的密码哈希函数,现在已经成为了业界的标准之一。通过 npm 包 argon2,我们可以在 JavaScript 中调用 argon2 的函数来计算哈希值。当我们在应用程序中使用密码时,应该考虑使用 argon2 来保护用户的密码。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/76957