當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。