# 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のオプションを変えると、何が変わりますか？

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

ここに広告を掲載しませんか？

[メールでお問い合わせ](mailto:hi@dennn.is?subject=OneClick%20Pro%E3%81%A7%E3%81%AE%E5%BA%83%E5%91%8A%E6%8E%B2%E8%BC%89)

[広告 WordPress向けのエージェント対応プラグインスイート。](https://sleekwp.com/?ref=oneclickpro)
