ハッシュ生成ツール — SHA-256、SHA-512などをオンラインで生成
任意のテキストを貼り付けて、SHA-1、SHA-256、SHA-384、SHA-512ハッシュを即座に取得。Web Crypto APIを使用——データはブラウザに留まり、サーバーには何も送信されません。ファイル整合性チェック、パスワード保存の検証、API署名のデバッグに便利。
MD5、SHA-1、SHA-256などのハッシュ値を生成
ハッシュするテキストを入力
MD5、SHA-1、SHA-256などのハッシュ値を生成
SHA-1
160 bits
SHA-256
256 bits
SHA-384
384 bits
SHA-512
512 bits
ハッシュ値を生成 (MD5, SHA-1, SHA-256)
ハッシュが実際にやっていること
ハッシュ関数は任意の入力——1文字でも10GBのファイルでも——を受け取り、固定長の出力(「ダイジェスト」)を生成します。SHA-256は入力サイズに関係なく常に64個の16進文字を出力。同じ入力は常に同じハッシュを返しますが、1ビット変えると出力は完全に異なります。これが「雪崩効果」。
重要な特性:ハッシュは一方向。SHA-256ハッシュから元の入力を逆算することはできません。これがパスワード保存に有用な理由——パスワードではなくハッシュを保存する。ユーザーがログインする時、入力をハッシュして比較する。
SHA-256はSHA-2ファミリーの一部で、FIPS 180-4(NIST発行)で定義。ビットコインマイニング、TLS証明書、Gitコミット ID、ほとんどのAPI署名スキームで使用。SHA-1はセキュリティ面では非推奨(2017年にGoogleのSHAtteredプロジェクトが衝突を発見)だが、Gitオブジェクトハッシュのような非セキュリティ用途では依然使用。
使い方
- 入力フィールドにテキストを貼り付けまたは入力。
- すべてのハッシュアルゴリズムが同時に計算——先に選ぶ必要なし。
- 必要なハッシュをワンクリックでコピー。
- ファイルハッシュの場合、ファイル内容を貼り付けるかCLIツールsha256sumを使用。
使用場面
ダウンロード後のファイル整合性検証
ISOやバイナリをダウンロードした?公開者がSHA-256ハッシュを掲載している。ファイル内容をここに貼り付けて(またはCLIでsha256sum)比較。ハッシュが一致すれば、転送中にファイルが破損や改ざんされていない。
API署名生成のデバッグ
多くのAPI(AWS、Stripe、webhook)はHMAC-SHA256署名を要求する。署名が一致しない時、署名対象文字列をここに貼り付けて中間ハッシュ値をステップごとに検証。
パスワードが漏洩データベースに含まれるか確認
HaveIBeenPwnedのAPIはSHA-1プレフィックスマッチング(k-匿名性)を使用。パスワードをSHA-1でハッシュし、最初の5文字をAPIに送り、完全なハッシュがレスポンスに含まれるか確認。このツールで最初のSHA-1を取得。
コンテンツから決定的IDを生成
毎回同じコンテンツの一意IDが必要?コンテンツをSHA-256でハッシュ。同じコンテンツ = 同じハッシュ = 同じID。コンテンツアドレッサブルストレージ、キャッシュキー、重複排除で使用。
知っておくべきこと
パスワード保存に素のハッシュを使わない
SHA-256は速い——パスワードにとってそれは悪いこと。GPUを持つ攻撃者は毎秒数十億のSHA-256ハッシュを試せる。パスワードにはbcrypt、scrypt、Argon2を使う——意図的に遅く(1ハッシュ100ms+)、ブルートフォースを非現実的にする。
SHA-1はセキュリティ用途では破綻、チェックサムには問題なし
Googleが2017年にSHA-1衝突を実証(SHAttered)。デジタル署名や証明書にSHA-1を使わないこと。しかしGitオブジェクトIDやキャッシュ無効化のような非セキュリティ用途には問題ない——誰もキャッシュキーを偽造するために10万ドル使わない。
同じ入力 = 同じハッシュ、常に
ハッシュは決定的。今日"hello"をSHA-256でハッシュしても10年後にしても同じ出力。これが検証に有用な理由。しかし同一パスワードが同一ハッシュを生成することも意味する——だからパスワードハッシュ前にランダムなソルトを追加する。
ハッシュ長 ≠ セキュリティレベル
SHA-256は256ビット出力だが128ビットの衝突耐性(誕生日攻撃)を提供。SHA-512は512ビット出力で256ビットの衝突耐性。ほとんどのアプリケーションにはSHA-256で十分すぎる。
例
単純な文字列のSHA-256
定番テスト——"hello"をハッシュして実装が正しいか確認。
Input
helloOutput
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b98241文字変更 = 完全に異なるハッシュ
雪崩効果のデモ——"hello" vs "Hello"(大文字H)。
Input
HelloOutput
185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969機能
- SHA-1、SHA-256、SHA-384、SHA-512を同時計算
- Web Crypto API使用——暗号学的に正確な実装
- 入力中にリアルタイムで結果表示——ボタンクリック不要
- 各アルゴリズムの出力をワンクリックコピー
- 100%ブラウザ内で動作——ネットワークリクエストゼロ
- 無料、登録不要、トラッキングなし
よくある質問
ハッシュを「復号」または逆算できる?
できない。ハッシュ関数は数学的に一方向。出力から入力を計算することは不可能。ハッシュを「クラック」する唯一の方法は、一致するまで入力を推測する(ブルートフォース)か事前計算テーブル(レインボーテーブル)を使うこと。だから長いランダムパスワードが重要。
SHA-256とSHA-512どちらを使うべき?
ほとんどの目的にはSHA-256で十分。SHA-512は64ビットシステムでやや速く、より長いハッシュを生成するが、両方とも十分なセキュリティを提供。特定の理由(既存システムの要件に合わせるなど)がない限りSHA-256を使う。
なぜSHA-256を直接パスワードハッシュに使ってはいけない?
速すぎるから。現代のGPUは毎秒約100億のSHA-256ハッシュを計算できる。8文字パスワードは約6×10^15通り——約7日で解読可能。bcrypt/Argon2は意図的に遅く(1ハッシュ約100ms)、同じ攻撃に数千年かかるようにする。
ハッシュと暗号化の違いは?
暗号化は可逆(鍵があれば)。ハッシュは不可逆。暗号化:平文 → 暗号文 → 平文。ハッシュ:入力 → ハッシュ(戻れない)。元のデータを復元する必要があれば暗号化。元のデータを保存せずにデータの一致を検証するだけならハッシュ。
SHA-1はまだ安全?
セキュリティ用途(署名、証明書):安全ではない。2017年に衝突攻撃が実証された。非セキュリティ用途(チェックサム、キャッシュキー、Git):問題ない。攻撃には約10万ドルの計算リソースが必要で、日常的なチェックサム用途には当てはまらない非常に特定のシナリオが必要。
ヒントと関連ワークフロー
- 安全なパスワードを生成してハッシュ保存するには、パスワード生成ツール.
- ハッシュと一緒にユニークな識別子を作成するには、UUID生成ツール.
- ハッシュ出力をエンコードしてURL経由で安全に送信するには、Base64エンコーダー.
- ハッシュ値を含むJSONデータを整形するには、JSONフォーマッター.