次の方法を使用して、nodejs の crypto lib からソルト化およびハッシュ化されたパスワードを作成しています。
crypto.randomBytes(size, [callback])
crypto.pbkdf2(password, salt, iterations, keylen, callback)
randomBytes 呼び出し (SALT の作成) では、どのサイズを使用すればよいですか? 128 ビットのソルトを聞いたことがありますが、おそらく最大 256 ビットです。この関数はバイト単位のサイズを使用しているように見えますが、32 (256 ビット) のサイズで十分だと思いますか?
pbkdf2 呼び出しの適切な反復回数とキーの長さ (keylen) はどれくらいですか?
また、ストレージについては、salt、length、iterations、および derviedkey を同じ列に格納する例を見てきました。4 を で区切る例を使用しています::
。
salt::derivedKey::keyLength::iterations
これを行うと、分離し::
て 4 つの値を取得できるので、提供されたパスワードに基づいて派生キーを生成し、一致するかどうかを確認できます。これは正しい保存方法ですか?それとも、これらの値を組み合わせる際にもう少し「欺く」べきでしょうか?