当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby KDF.scrypt用法及代码示例


本文简要介绍ruby语言中 OpenSSL::KDF.scrypt 的用法。

用法

scrypt(pass, salt:, N:, r:, p:, length:) → aString

使用基于 scrypt 密码的 key 派生函数的给定参数从 pass 派生 key 。结果可用于密码存储。

scrypt 被设计为memory-hard,并且比使用 PBKDF2 或 bcrypt 等替代 KDF 更安全地抵御使用自定义硬件的暴力攻击。

关键字参数 Nrp 可用于调整 scrypt。 RFC 7914(发布于 2016 年 8 月,tools.ietf.org/html/rfc7914#section-2)指出使用值 r=8 和 p=1 似乎会产生良好的结果。

有关详细信息,请参阅 RFC 7914 (tools.ietf.org/html/rfc7914)。

参数

经过

密码。

盐。

N

CPU/内存成本参数。这必须是 2 的幂。

r

块大小参数。

p

并行化参数。

长度

派生 key 的八位字节长度。

示例

pass = "password"
salt = SecureRandom.random_bytes(16)
dk = OpenSSL::KDF.scrypt(pass, salt: salt, N: 2**14, r: 8, p: 1, length: 32)
p dk #=> "\xDA\xE4\xE2...\x7F\xA1\x01T"

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 KDF.scrypt。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。