scrypt ハッシュ生成

無料オンライン scrypt ハッシュ生成 ツール。100% ローカル処理 — データは端末の外に出ません。

General
Password Hashing / KDF
Specialized
Deprecated
bytes
出力

結果がここに表示されます...

入力 ハッシュを計算

Usage Guide

scrypt について

scrypt(RFC 7914)は、CPU 時間とメモリの両方を大量に消費するよう設計されたメモリハードなパスワードベースの鍵導出関数です。PBKDF2 や bcrypt を脅かす GPU・FPGA・ASIC によるブルートフォース攻撃に対抗するために開発されました。scrypt は Litecoin のプルーフ・オブ・ワーク、パスワードマネージャー、安全な鍵導出などに使用されています。3 つのコストパラメータにより、セキュリティとパフォーマンスのバランスを調整できます。

scrypt は KDF であり、ハッシュ関数ではありません。パスワードとソルトから鍵を導出します——異なるパラメータ間で出力を直接比較することはできません。将来の検証のために、必ず完全なパラメータ文字列(n:r:p:salt:key)を保存してください。

使い方

scrypt は一方向の鍵導出関数です——逆算することはできません:

1. パスワードを入力鍵を導出したいパスワードを入力欄に入力します
2. パラメータを設定N(CPU/メモリコスト)、r(ブロックサイズ)、p(並列度)を設定します。デフォルト値(N=16384, r=8, p=1)はインタラクティブなログインに適しています
3. 鍵を導出「暗号化」をクリック——出力形式は n:r:p:salt_base64:key_hex です
4. パスワードを検証検証するには、パスワードの後に | で区切って完全な出力文字列を貼り付け(例:mypassword|16384:8:1:salt:keyhex)、「復号」をクリックします
プライバシー:すべての導出処理は WebAssembly を使用してブラウザ内で完全に実行されます。パスワードが送信されることはありません。

出力フォーマット

scrypt は将来の検証に必要な完全なパラメータ文字列を出力します:

フォーマットn:r:p:salt_base64:key_hex(例:16384:8:1:abc123...:d4e5f6...)
NCPU とメモリのコストファクター——2 の累乗である必要があります(例:16384 = 2¹⁴)
rブロックサイズパラメータ——メモリ帯域幅コストに影響します
p並列化ファクター——メモリとは独立して CPU コストを増加させます
ソルト導出ごとに自動生成される 16 バイトのランダムソルト(Base64 エンコード)
32 バイトの導出鍵(16 進数エンコード)

scrypt パラメータの選択

セキュリティ要件と許容できるレイテンシに基づいてパラメータを選択します:

インタラクティブ(ログイン)N=16384, r=8, p=1 — 現代のハードウェアで約 100ms、Web 認証に適しています
高セキュリティ(ファイル暗号化)N=1048576, r=8, p=1 — 現代のハードウェアで約 5 秒、ディスク暗号化鍵に適しています
N は 2 の累乗である必要あり有効な値:1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576
メモリ使用量約 128 × N × r バイト(例:N=16384, r=8 → 約 16 MB)
新しいアプリケーションには、 Argon2id (Password Hashing Competition の優勝者、NIST と OWASP が推奨)の使用をご検討ください。scrypt は優れており広く使われていますが、Argon2id はより単純なパラメータモデルを持っています。

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 を、より機密性の高いシステムにはさらに高い値を使用してください。

Recommended Configuration:
  • ✅ インタラクティブな 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 で直接使用できます。

Recommended Configuration:
  • ✅ ディスク/ファイル暗号化鍵の導出には scrypt N=1048576(2²⁰)
  • ✅ 32 バイトの出力を AES-256-GCM 鍵として直接使用
  • ✅ scrypt パラメータとソルトを暗号化データと一緒に保存
  • ❌ 認証と暗号化の両方に同じ導出鍵を使用しない
推奨:暗号通貨アプリケーション

scrypt は Litecoin(および他の暗号通貨)のプルーフ・オブ・ワークアルゴリズムとして採用されました。ウォレットアプリケーションでは、scrypt を使用してニーモニックやパスフレーズから秘密鍵を導出します。そのメモリハード特性は ASIC マイニングの優位性に対抗するために特に選ばれました。

Recommended Configuration:
  • ✅ ユーザーパスフレーズからのウォレット鍵導出に scrypt
  • ✅ パスフレーズ保護された鍵保存に scrypt
  • ❌ PoW マイニングアプリには実装固有のパラメータを使用
非推奨:認証不要なコンテキスト

scrypt は鍵を導出します——それ自体では認証や完全性を提供しません。メッセージ認証コードが必要な場合は HMAC-SHA256 を使用してください。高速なデータチェックサムが必要な場合は SHA-256 を使用してください。scrypt の計算コストにより、高ボリュームの操作には不適切です。

Recommended Configuration:
  • ❌ 汎用ハッシュに 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 を使用してください。

ディスカッション&フィードバック

0件のコメント
自分