ハッシュ計算
任意のテキストやファイルの MD5・SHA-1・SHA-256・SHA-384・SHA-512 ハッシュを計算——100% ブラウザ内で完結。
入力
ハッシュ結果
ハッシュ値がここに表示されます。
ハッシュとは?
ハッシュとは、任意の分量の入力データ——テキスト文字列、ファイル、画像、データベース全体など——をハッシュアルゴリズムと呼ばれる数学的関数に通し、ハッシュ値、ダイジェスト、チェックサムと呼ばれる固定長の文字列を生成する処理です。同じ入力は常に同じ出力を生成しますが、入力にわずかな変更(1 ビットの反転など)を加えただけで完全に異なるハッシュになります。ハッシュは一方向の操作で、データからハッシュは計算できますが、ハッシュから元のデータを復元することはできません。
ハッシュ関数は現代のコンピューティングの基礎です。ファイル整合性の検証(公開チェックサムと一致すればダウンロードは無傷)、パスワードの安全な保存(平文ではなくハッシュのみ保存)、デジタル証明書の署名、ストレージシステムでのデータ重複排除、ブロックチェーンのプルーフ・オブ・ワークなどに使われます。暗号学的ハッシュ関数はさらに、原像耐性(ハッシュから入力を推測できない)、第二原像耐性(同じハッシュになる別の入力を見つけられない)、衝突耐性(2 つの異なる入力が同じハッシュになることはない)という 3 つの重要な保証を提供します。
ハッシュアルゴリズムの解説
ハッシュアルゴリズムによって生成されるダイジェストの長さやセキュリティ保証は異なります。このツールは広く使われている 5 つのアルゴリズムに対応し、それぞれにトレードオフがあります:
- MD5(128 ビット)。1992 年に MD4 の後継としてリリースされ、32 文字の 16 進ダイジェストを生成します。非常に高速で、非暗号学的なチェックサム、ファイルフィンガープリント、キャッシュキーとして今も広く使われています。ただし MD5 は暗号学的に破られていると見なされており、2004 年以降実際の衝突攻撃が実証されているため、パスワード、デジタル署名、その他のセキュリティ sensitive な用途には決して使用してはいけません。
- SHA-1(160 ビット)。1995 年に NSA が公開し、40 文字の 16 進ダイジェストを出力します。長年 TLS 証明書や Git コミット ID の中心でしたが、2017 年の公開衝突攻撃(SHAttered)で非推奨となりました。現在では多くのブラウザや認証局が SHA-1 を信頼していません。
- SHA-256(256 ビット)。SHA-2 ファミリーの一員で、64 文字の 16 進ダイジェストを生成します。現在もっとも広く使われている暗号学的ハッシュで、Bitcoin、TLS 証明書、ソフトウェア署名、ファイル整合性、パスワード保存(ソルトと遅い KDF と組み合わせ)を保護しています。強力なセキュリティと、現代の CPU での優れたハードウェアアクセラレーションを備えています。
- SHA-384(384 ビット)。SHA-2 の別のバリアントで、SHA-512 ダイジェストを 96 文字の 16 進数に切り詰めます。政府アプリケーションや X.509 証明書など、より高いセキュリティ余裕が求められる場面で使われます。
- SHA-512(512 ビット)。SHA-2 の最長バリアントで、128 文字の 16 進ダイジェストを生成します。64 ビット CPU で最も高い性能を発揮し、デジタル署名、PBKDF2/Argon2 バックエンドでのパスワードハッシュ、大規模アーカイブの整合性検証に使用されます。
MD5 と SHA —— どちらを使うべきか?
MD5 と SHA ファミリーは表面上は同じ問題を解決しますが、暗号学的には異なる時代に属します。MD5 はより高速で短いダイジェットを生成するため、帯域幅と CPU リソースが限られていた 1990 年代には魅力的でした。今日では MD5 は、変更検出、重複排除、ETag 生成、公開チェックサムとの比較といった非セキュリティ用途にのみ使用すべきです。攻撃者が意図的に衝突入力を生成する可能性のある場面——パスワード保存、デジタル署名、証明書フィンガープリント、改ざん防止——では MD5 は安全ではなく、SHA-256 以上を使用すべきです。
SHA ファミリーの中では、SHA-256 が現代のデフォルトです。SHA-384 と SHA-512 はより大きなセキュリティ余裕を持ち、金融、医療、政府などで要求される環境で好まれます。SHA-1 は新しいコードでは避けるべきで、古い Git オブジェクトや期限切れ証明書の検証といったレガシーアーティファクトでのみ有用です。特にパスワード保存では、どのアルゴリズムの生ハッシュだけでも不十分であり、SHA-256(または SHA-512)を PBKDF2、bcrypt、scrypt、Argon2 などの遅い鍵導出関数と組み合わせる必要があります。
ハッシュ計算ツールを使う場面
ハッシュ計算ツールは、データが変更されていないことを確認したい開発者や一般ユーザーの日常的な場面で重宝します。一般的なユースケースは次のとおりです:
- ファイル整合性の検証。ダウンロードした ISO、アーカイブ、インストーラのハッシュを公開者のチェックサムと比較し、ファイルが破損または改ざんされていないことを確認します。
- 変更の検出。設定ファイル、契約書、ドキュメントを送受信前後でハッシュ化します。ハッシュが一致すれば内容が同一であることを示します。
- キャッシュキーと重複排除。ペイロードをハッシュ化して、キャッシュ、重複排除、データベースの一意キーとして使用できる安定したコンパクトな識別子を生成します。
- フィンガープリントの生成。証明書、公開鍵、ドキュメントの SHA-256 フィンガープリントを計算し、検証や監査ログに使用します。
- データパイプラインのデバッグ。中間レコードをハッシュ化して、変換が暗黙的に値を変更していないことを確認します。
- 暗号学の学習。入力の小さな変更がどのように全く異なるハッシュ出力(アバランシェ効果)を生むかを実験します。
パスワード保存では、生ハッシュで止まらず、専用のパスワードハッシュ関数を使用してください。本ツールはチェックサムと学習を目的としており、ユーザー認証情報の保存には使用しないでください。
ハッシュの計算方法
このツールでのハッシュ計算は数秒で完了し、すべてブラウザ内で行われます。アップロード、登録、インストールは不要です。ツールは SHA ファミリーに Web Crypto API(crypto.subtle.digest)を使用し、MD5 には組み込みの JavaScript 実装を使用します。次の手順に従ってください:
- 入力を指定。入力ボックスにテキストを入力または貼り付けるか、ファイルをアップロードします。ファイルが選択されている場合はファイル内容が、それ以外はテキストがハッシュ化されます。
- 「ハッシュを計算」をクリック。ツールは MD5・SHA-1・SHA-256・SHA-384・SHA-512 を並行して計算し、結果パネルに各ダイジェストをリスト表示します。
- 必要なハッシュをコピー。各ダイジェストには専用のコピーボタンがあります。クリックすると 16 進文字列をクリップボードにコピーします。
- 比較または再利用。ハッシュをスクリプト、ドキュメント、検証フローに貼り付けます。同じ入力で再実行すると常に同じダイジェストが得られます。
すべてのステップは JavaScript を使用してブラウザ内でローカルに実行されるため、テキストやファイルがサーバーにアップロードされることはありません。これにより計算は完全にプライベートで高速、機密性の高いコンテンツにも適しています。
このハッシュ計算ツールは無料ですか?
はい、完全に無料で、登録不要、透かしなし、デバイスのメモリ以外に制限はありません。
対応しているハッシュアルゴリズムは?
MD5・SHA-1・SHA-256・SHA-384・SHA-512 です。すべてブラウザ内でローカルに計算されます。
テキストではなくファイルをハッシュ化できますか?
はい。ファイルピッカーでファイルを選択し、「ハッシュを計算」をクリックします。ファイルのバイトは FileReader API でローカルに読み込まれ、アップロードされません。
MD5 はパスワードに安全ですか?
いいえ。MD5 はセキュリティ用途では破られています。パスワードには PBKDF2、bcrypt、scrypt、Argon2 などの遅い鍵導出関数を、ユーザーごとのソルトとともに使用してください。
入力はアップロードされますか?
いいえ。すべての処理はローカルで行われ、テキストやファイルがブラウザから離れることはありません。