「ストレッチ回数は、2005年時点の推奨値で4,096回。iOS 9 では 10,000回のストレッチングを行っています」
PBKDF2(Password-Based Key Derivation Function 2)
Django や iOS 9 などが採用しているアルゴリズムです。ハッシュ関数として HMAC-SHA1 や HMAC-SHA256 などを選択することができます。ソルトとストレッチ回数を指定します。下記は Python で PBKDF2 のハッシュ値を求めるサンプルです。ストレッチ回数は、2005年時点の推奨値で4,096回。iOS 9 では 10,000回のストレッチングを行っています。
crypto.pbkdf2の概要
Provides an asynchronous Password-Based Key Derivation Function 2 (PBKDF2) implementation. A selected HMAC digest algorithm specified by
digest
is applied to derive a key of the requested byte length (keylen
) from thepassword
,salt
anditerations
.The supplied
callback
function is called with two arguments:err
andderivedKey
. If an error occurs while deriving the key,err
will be set; otherwiseerr
will benull
. By default, the successfully generatedderivedKey
will be passed to the callback as aBuffer
. An error will be thrown if any of the input arguments specify invalid values or types.
DeepL訳:
非同期のPassword-Based Key Derivation Function 2 (PBKDF2) の実装を提供する。digest
で指定された HMAC ダイジェストアルゴリズムが適用され、 password
, salt
および iterations
から要求されたバイト長 (keylen
) の鍵を導出する。
与えられた callback
関数はerr
と derivedKey
の2つの引数で呼び出されます。鍵の導出中にエラーが発生した場合は err
がセットされ、それ以外の場合は err
は null
となる。デフォルトでは、正常に生成された derivedKey
は Buffer
としてコールバックに渡される。入力引数に無効な値や型が指定された場合は、エラーがスローされます。