コンテンツへスキップ

Scrypt生成ツール

ランダムまたはカスタムのソルトを使って、パスワードからscryptキーを導出します。コスト指数は最大15(Nは最大32768)、ブロックサイズrは最大8、並列度pは最大4、キー長は16~64バイトから選択できます。このツールはRFC 7914に準拠し、キー、使用したソルト、パラメーターを16進数またはBase64で返します。Node.js crypto.scrypt、Python hashlib、libsodiumとの比較に使用できます。パスワードは表示されません。

リセット

よくある質問

scryptとは何ですか?

scryptはColin Percivalが開発したメモリ負荷の高い鍵導出関数で、RFC 7914として標準化されています。パスワードとソルトからキーを導出する際に、試行ごとに大量のメモリを使用させます。パスワードの保存、ディスク暗号化、一部の暗号資産で使われています。

N、r、pは何を表しますか?

NはCPUとメモリのコストで、2のべき乗である必要があります。rはブロックサイズ、pは並列化係数です。メモリ使用量はおよそ128×N×rバイトなので、r = 8でN = 16384の場合は16 MiB必要です。このツールではNは最大32768、rは最大8、pは最大4です。

デフォルトのパラメーターは何ですか?

デフォルトはN = 16384(コスト指数14)、r = 8、p = 1、キー長32バイトです。scryptの論文で推奨されているインタラクティブ設定です。お使いのシステムで可能な範囲でNを増やすと、保護を強化できます。

ソルトはどのように選ばれますか?

ソルト欄が空の場合、ツールはランダムな16バイトを生成し、結果に表示します。ソルトを入力すると、そのUTF-8バイト列が使われるため、別のシステムでキーを再現できます。異なるパスワードに同じソルトを使い回さないでください。

RFC 7914のテストベクトルを再現できますか?

はい。パスワードがpleaseletmein、ソルトがSodiumChloride、コスト指数が14、r = 8、p = 1、キー長が64バイトの場合、7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887が得られます。これはRFCの3番目のベクトルです。

パラメーターに上限があるのはなぜですか?

scryptは実際にメモリを割り当て、共有サーバー上で実行されます。Nを32768、rを8、pを4に制限することで、各導出に必要なメモリを約32 MiB以下、処理時間を数秒以内に抑えています。

scryptのパスワードハッシュはどのように保存しますか?

後でパスワードを確認するにはすべて必要になるため、キー、ソルト、N、r、pをまとめて保存します。Node.js crypto.scryptのようなライブラリでは保存形式を自分で決めますが、独自の文字列形式を使うライブラリもあります。

結果にパスワードは含まれますか?

いいえ。レスポンスにはキー、ソルト、パラメーターが含まれますが、パスワードは含まれません。ログへの記録や保存もされません。

scryptとArgon2のどちらを使うべきですか?

どちらもメモリ負荷が高く、パスワードに適しています。Argon2idは新しい推奨方式で、調整も簡単です。一方、scryptはNode.jsやPythonなどの標準ライブラリで広くサポートされています。

hexとBase64のオプションを変えると、何が変わりますか?

結果にキーとソルトをどう表記するかが変わります。バイト列は同じなので、お使いのコードで読み取れる形式を選んでください。

OneClick Proについて

OneClick Proは、日々の作業に役立つ150以上のウェブツールを集めた無料コレクションです。画像や単位の変換、コードの整形と検証、ドメインやSEOの確認、テキスト、日付、数値の処理などに利用できます。すべてのツールは登録やサブスクリプションなしで使えます。入力した内容は結果の計算にのみ使用され、保存されることはありません。単発の作業に使える便利なツールボックスとして、または毎日使うツールをブックマークしてご活用ください。