本文简要介绍ruby语言中 OpenSSL::KDF.scrypt
的用法。
用法
scrypt(pass, salt:, N:, r:, p:, length:) → aString
使用基于 scrypt 密码的 key 派生函数的给定参数从 pass
派生 key 。结果可用于密码存储。
scrypt 被设计为memory-hard,并且比使用 PBKDF2 或 bcrypt 等替代 KDF 更安全地抵御使用自定义硬件的暴力攻击。
关键字参数 N
、 r
和 p
可用于调整 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 KDF.hkdf用法及代码示例
- Ruby KDF模块用法及代码示例
- Ruby Kernel.local_variables用法及代码示例
- Ruby Kernel.Integer用法及代码示例
- Ruby Kernel.binding用法及代码示例
- Ruby Kernel.frozen?用法及代码示例
- Ruby Kernel.`cmd`用法及代码示例
- Ruby Kernel.autoload用法及代码示例
- Ruby Kernel.loop用法及代码示例
- Ruby Kernel.Hash用法及代码示例
- Ruby Kernel.caller用法及代码示例
- Ruby Kernel.set_trace_func用法及代码示例
- Ruby Kernel.exit!用法及代码示例
- Ruby Kernel.trap用法及代码示例
- Ruby Kernel.String用法及代码示例
- Ruby Kernel.select用法及代码示例
- Ruby Kernel.syscall用法及代码示例
- Ruby Kernel.then用法及代码示例
- Ruby Kernel.sprintf用法及代码示例
- Ruby Kernel.Pathname用法及代码示例
- Ruby Kernel.srand用法及代码示例
- Ruby Kernel.yield_self用法及代码示例
- Ruby Kernel.BigDecimal用法及代码示例
- Ruby Kernel.raise用法及代码示例
- Ruby Kernel.test用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 KDF.scrypt。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。