ハッシュ生成ツール(MD5・SHA-256)

MD5 -
SHA-1 -
SHA-256 -
SHA-384 -
SHA-512 -
すべての処理はブラウザ内で完結。サーバーへの送信は一切ありません。

ハッシュ関数の概要・基礎知識

ハッシュ(ハッシュ値)は、テキストやファイルなど任意のデータから生成される固定長の文字列です。同じ入力からは必ず同じハッシュ値が生成され、入力が1ビットでも変わると出力は大きく変化します。一方ハッシュ値から元のデータを復元することはできない「一方向性」を持つため、ファイルの改ざん検知やパスワードの安全な保存に広く利用されてきました。本ツールはブラウザ標準のWeb Crypto APIを用い、MD5・SHA-1・SHA-256・SHA-384・SHA-512の5種類を同時生成します(MD5のみ独自実装)。すべての処理は端末上で完結するため、入力テキストが外部に送信されることはありません。

主要アルゴリズムの比較

アルゴリズム出力長強度主な用途
MD5128bit / 32文字低(衝突攻撃が現実的)ファイル整合性の簡易チェック、レガシー連携
SHA-1160bit / 40文字低(2017年に衝突実証)Gitオブジェクト識別、レガシー署名
SHA-256256bit / 64文字高(現役の業界標準)TLS証明書、JWT、ブロックチェーン、APIシークレット保存
SHA-384384bit / 96文字政府・金融用途、長期保管文書
SHA-512512bit / 128文字非常に高い高セキュリティ要件、長期署名

使い方の流れ

  1. テキスト入力欄に、ハッシュ化したい文字列を貼り付けまたは入力します(複数行も可)。
  2. 入力に応じてリアルタイムで5種類のハッシュ値が同時表示されます。アルゴリズムごとの違いを一目で比較できます。
  3. 各ハッシュ値の右側にある「コピー」ボタンを押すと、その値だけをクリップボードに転送できます。
  4. ファイル整合性確認では、配布元の公式サイトに記載されたハッシュ値と、本ツールの出力を見比べて一致するか確認します。
  5. 必要に応じて、入力テキストを変更してハッシュの変化を観察できます。1文字追加するだけで全体が大きく変わることが体感できます。

こんな場面で使う

  • ダウンロードファイルの改ざん検知:OSイメージやインストーラの公式SHA-256と、ローカルで再計算した値を照合し、転送中の破損や不正改ざんを検出できます。
  • APIキーの安全な保存設計:シークレットを平文で保存せず、SHA-256化した値だけをDBに残すことでデータ漏えい時のリスクを減らせます(パスワード保存には別途bcrypt等が推奨)。
  • Webhook署名の検証:StripeやGitHubのWebhookを受け取る際、ペイロードと共有シークレットからSHA-256ハッシュを生成し、リクエストヘッダーの署名と照合します。
  • キャッシュキーの生成:URLやJSONボディからSHA-1ハッシュを取って、CDNやアプリのキャッシュキーに利用するパターンが一般的です。
  • ブロックチェーン・NFT検証:BitcoinやEthereumで採用されているSHA-256・Keccak-256(SHA-3系)の挙動を学習する際の参考に使えます。

使う前に知っておきたい注意点

  • パスワード保存にハッシュ関数単体を使うのは非推奨です。SHA-256でも単純なハッシュ化はレインボーテーブル攻撃やGPU総当たりに弱く、bcrypt・scrypt・Argon2といった「ストレッチング+ソルト付き」のパスワードハッシュ関数を使ってください。
  • MD5・SHA-1は学術的に衝突攻撃が確認されています。新規システムのセキュリティ機能(署名・改ざん検知)には絶対に使わず、SHA-256以上を選択してください。
  • 本ツールは入力をUTF-8として処理します。Shift-JISやEUC-JPで保存されたテキストとは結果が一致しないため、文字コードを揃えてご利用ください。
  • ハッシュは復号できません。ハッシュ値しか手元にない状態で元データを復元する目的では使えない点に注意してください。
  • MD5の出力は本ツールが内部実装で計算しています。Web Crypto APIはMD5を非対応としているため、暗号学的強度を要する用途には使わないでください。

用語の補足

  • 衝突(コリジョン):異なる入力から同じハッシュ値が生成される現象。SHA-256では現実的に起こり得ないとされていますが、MD5・SHA-1では実証済みです。
  • ソルト:パスワードハッシュに付加するランダム文字列。同じパスワードでも異なるハッシュ値になり、レインボーテーブル攻撃を防げます。
  • HMAC:ハッシュ関数と秘密鍵を組み合わせたメッセージ認証コード。Webhook署名やAPI認証で広く使われます。

よくある質問

いいえ、ハッシュは一方向変換のため、ハッシュ値から元のテキストを復元することはできません。これが可逆性のある暗号化との根本的な違いです。短い文字列であれば総当たりで突合できる場合もありますが、十分な長さの入力なら現実的には不可逆です。
セキュリティ用途にはSHA-256以上を強く推奨します。MD5は衝突攻撃(異なるデータから同じハッシュ値が生成される)が実用化されており、署名・改ざん検知用途には不向きです。ファイル破損の簡易チェックや非機微なキャッシュキー生成程度なら、計算が速いMD5を使うこともあります。
SHA-256単体では推奨されません。bcrypt・scrypt・Argon2のような「ストレッチング+ソルト」を組み込んだパスワードハッシュ関数を使うのが現代のベストプラクティスです。これらは総当たり攻撃を遅らせる設計で、サーバーリソースに合わせてコストを調整できます。
同じアルゴリズム・同じ文字コードであれば、必ず同じハッシュ値になります。違って見える場合は、改行コード(CRLF/LF)の違い、文字コードの違い(UTF-8 / Shift-JIS)、末尾の不可視スペースなどが原因のことがほとんどです。
はい、本ツールはUTF-8として日本語を処理します。Linuxコマンドのecho "テキスト" | sha256sumと同じ結果になります。Windowsのコマンドプロンプトでは文字コードの違いから値がずれることがあるため、ファイルをUTF-8で保存してから検証してください。
本ツールはテキスト入力専用です。ファイル全体のハッシュを取りたい場合は、PowerShellのGet-FileHash、Linuxのsha256sum、macOSのshasum -a 256などコマンドラインのネイティブ機能を使うのが確実です。
いいえ、すべての処理はブラウザ上のWeb Crypto APIで完結します。APIキーやパスワードといった機密情報を入力しても、外部に送信されることは一切ありません。