scrypt ハッシュ生成
無料オンライン scrypt ハッシュ生成 ツール。100% ローカル処理 — データは端末の外に出ません。
結果がここに表示されます...
入力 → ハッシュを計算
Usage Guide
scrypt について
scrypt(RFC 7914)は、CPU 時間とメモリの両方を大量に消費するよう設計されたメモリハードなパスワードベースの鍵導出関数です。PBKDF2 や bcrypt を脅かす GPU・FPGA・ASIC によるブルートフォース攻撃に対抗するために開発されました。scrypt は Litecoin のプルーフ・オブ・ワーク、パスワードマネージャー、安全な鍵導出などに使用されています。3 つのコストパラメータにより、セキュリティとパフォーマンスのバランスを調整できます。
使い方
scrypt は一方向の鍵導出関数です——逆算することはできません:
出力フォーマット
scrypt は将来の検証に必要な完全なパラメータ文字列を出力します:
scrypt パラメータの選択
セキュリティ要件と許容できるレイテンシに基づいてパラメータを選択します:
FAQ
Q: scrypt がハードウェア攻撃に強い理由は何ですか?
A: scrypt はメモリハードです:内部の ROMix アルゴリズムは大きなメモリブロック(128 × N × r バイト)に疑似ランダムな順序でアクセスする必要があります。このシーケンシャルなメモリアクセスパターンは SHA-256 のように並列化できません——N=16384, r=8 では約 16 MB のランダムアクセスが必要で、SHA-256 や PBKDF2 などの純粋な計算ベースのハッシュと比べ、GPU/ASIC ハードウェアでの攻撃コストが桁違いに高くなります。
Q: scrypt は bcrypt や Argon2 とどう違いますか?
A: 三つともパスワードハッシュアルゴリズムですが、設計が異なります: bcrypt(1999 年)は時間的コストのみ(固定 4 KB メモリ)で、GPU 攻撃への脆弱性が高まっています。 scrypt(2009 年)はメモリハードで GPU/ASIC に強いですが、パラメータ間の複雑な相互作用があります(N を大きくすると p を通じて CPU コストも増加)。 Argon2id(2015 年、PHC 優勝)はメモリハード、GPU 耐性があり、時間/メモリ/並列度パラメータが独立しています。OWASP と NIST は新しいシステムに Argon2id を推奨しており、scrypt は有力な第二の選択肢です。
Q: N が 2 の累乗でなければならない理由は何ですか?
A: scrypt の ROMix アルゴリズムは N をルックアップテーブルのサイズとして内部で使用し、効率的なランダムアクセスのためにビットマスク(index & (N-1))に依存しています。このマスクのテクニックは N が 2 の累乗の場合にのみ正しく機能します。一般的な値:インタラクティブ用途に 16384(2¹⁴)、ファイル暗号化に 1048576(2²⁰)。
Q: scrypt の出力を暗号鍵として直接使用できますか?
A: はい——scrypt は鍵素材を生成するために特別に設計されています。32 バイト(256 ビット)の出力は AES-256 鍵や ChaCha20-Poly1305 鍵として使用できます。ただし、同じ scrypt の導出を複数の目的(例:認証と暗号化の両方)に使用しないでください——異なるソルトで別々の鍵を導出するか、HKDF などの KDF を使用して一つのルート鍵を拡張してください。
Q: 検証の入力フォーマットは何ですか?
A: 保存された scrypt ハッシュに対してパスワードを検証するには、パスワードと完全な scrypt 出力文字列をパイプ文字で区切って入力します:password|16384:8:1:salt_base64:key_hex。ツールは保存されたパラメータを使用して鍵を再導出し、保存された鍵と比較します。一致した場合は「✓ パスワードが確認されました」を返します。
Q: scrypt はデータベースへのパスワード保存に適していますか?
A: はい、適切なパラメータを使用すれば。ユーザーごとに完全な文字列(n:r:p:salt:key)を保存します——将来の検証に必要なすべてが含まれています。インタラクティブなログインには最低でも N=16384, r=8, p=1 を使用し、セキュリティ要件が高いアプリケーションには N を増やしてください。最新の推奨事項については OWASP パスワードストレージ チートシート をご覧ください。
Use Cases
推奨:パスワードの保存
scrypt はデータベースに保存する前にパスワードをハッシュするための優れた選択肢です。そのメモリハード特性により、オフラインブルートフォース攻撃は PBKDF2 や bcrypt と比べて桁違いにコストが高くなります。Web アプリケーションには N≥16384 を、より機密性の高いシステムにはさらに高い値を使用してください。
- ✅ インタラクティブな Web ログインには scrypt N=16384, r=8, p=1
- ✅ 完全な n:r:p:salt:key 文字列を保存——鍵だけは絶対に NG
- ✅ ユーザーごとにユニークなランダムソルトを使用(このツールが自動生成)
- ❌ N<1024 の scrypt は使用しない——ワークファクターが不十分
- 💡 新しいプロジェクトには Argon2id を検討——現在の OWASP 推奨
推奨:ディスク暗号化鍵の導出
scrypt はディスクやファイルの暗号化のためにパスフレーズから暗号鍵を導出するのに適しています。高めのパラメータ(N=1048576)は、導出がマウント時に一度だけ行われ、余分な数秒の遅延が許容できるため、適切です。導出された鍵は AES-256-GCM で直接使用できます。
- ✅ ディスク/ファイル暗号化鍵の導出には scrypt N=1048576(2²⁰)
- ✅ 32 バイトの出力を AES-256-GCM 鍵として直接使用
- ✅ scrypt パラメータとソルトを暗号化データと一緒に保存
- ❌ 認証と暗号化の両方に同じ導出鍵を使用しない
推奨:暗号通貨アプリケーション
scrypt は Litecoin(および他の暗号通貨)のプルーフ・オブ・ワークアルゴリズムとして採用されました。ウォレットアプリケーションでは、scrypt を使用してニーモニックやパスフレーズから秘密鍵を導出します。そのメモリハード特性は ASIC マイニングの優位性に対抗するために特に選ばれました。
- ✅ ユーザーパスフレーズからのウォレット鍵導出に scrypt
- ✅ パスフレーズ保護された鍵保存に scrypt
- ❌ PoW マイニングアプリには実装固有のパラメータを使用
非推奨:認証不要なコンテキスト
scrypt は鍵を導出します——それ自体では認証や完全性を提供しません。メッセージ認証コードが必要な場合は HMAC-SHA256 を使用してください。高速なデータチェックサムが必要な場合は SHA-256 を使用してください。scrypt の計算コストにより、高ボリュームの操作には不適切です。
- ❌ 汎用ハッシュに scrypt を使用しない(SHA-256 を使用)
- ❌ HMAC やメッセージ認証に scrypt を使用しない
- ❌ 高頻度操作(API リクエスト署名、リクエストごとのトークン)に scrypt を使用しない
- ✅ scrypt はそのパスワード保護特性が明示的に必要な場合のみ使用
ベストプラクティスまとめ
- scrypt はメモリハード KDF——パスワードハッシュとパスフレーズからの鍵導出に適しています。
- 完全なパラメータ文字列(n:r:p:salt:key)を必ず保存——鍵だけを保存しないこと。
- N は 2 の累乗である必要があります。デフォルトの N=16384, r=8, p=1 はインタラクティブなログインに適しています。
- 新しいアプリケーションには OWASP が第一選択として Argon2id を推奨。scrypt は有力な第二の選択肢です。
- scrypt は汎用ハッシュ、MAC、高頻度操作には NOT 適切——それらには SHA-256 や HMAC を使用してください。