ハッシュ生成:SHA-256・SHA-512・SHA-1・MD5
テキストを入力するかファイルを選ぶと、SHA-256、SHA-384、SHA-512、SHA-1のハッシュ値をすぐに計算します。MD5も必要に応じて計算できます。ダウンロードページなどに載っている期待値を貼り付ければ、その場で照合できます。処理はすべてブラウザー内で行い、ファイルはアップロードされません。
計算方法
ハッシュ関数は、任意の長さのデータを決まった長さの値(ハッシュ値、ダイジェスト、チェックサム)に変換します。同じ入力からは必ず同じハッシュが得られ、1文字変えるだけでまったく別の値になります。ハッシュ値から元の入力を逆算することはできません。
ハッシュを生成する手順
- テキストを入力するか、ファイルを選びます。
- 出力形式(16進数の小文字・大文字、Base64)を選び、必要なら「MD5も計算する」にチェックを入れます。
- 必要なハッシュをコピーするか、期待するハッシュを貼り付けて照合します。
各アルゴリズムの特徴
- SHA-256(256ビット、16進数64文字):現在の標準です。ダウンロードのチェックサム、Git、証明書、ブロックチェーンなどで使われます。SHA-384、SHA-512とともにNIST FIPS 180-4で規定されています。
- SHA-384・SHA-512(16進数96文字・128文字):SHA-2ファミリーのより長い版です。64ビット環境では、SHA-512のほうがSHA-256より速いこともよくあります。
- SHA-1(16進数40文字):2017年に実用的な衝突攻撃が公表されて以来、破られたとみなされています。NISTはデジタル署名での使用を認めていません。古いGitなど、単なるチェックサムとしては今も見かけます。
- MD5(16進数32文字):2004年から破られています(RFC 6151)。同じMD5を持つ2つの別ファイルが数秒で作れます。通信中の偶発的なエラーを確かめるチェックサムとしてのみ有用です。ブラウザーにはMD5がないため、このツールはRFC 1321のテスト値で検証した独自の実装を使っています。
ダウンロードしたファイルの確認
多くのプロジェクトは、ファイルと一緒にSHA-256のチェックサムを公開しています。ここでファイルを選び、公開されている値を「期待するハッシュと照合」に貼り付けてください。一致すれば、ファイルは改変されずに届いています。期待値の大文字・小文字、スペース、コロンは無視します。Windowsではcertutil -hashfile ファイル名 SHA256、macOSやLinuxではshasum -a 256 ファイル名やsha256sum ファイル名でも同じことができます。
ハッシュが一致しない理由
多くの場合、目に見えない文字が原因です。echo text | sha256sumは改行付きで、echo -nは改行なしでハッシュを計算します。Windowsの改行コード(LFではなくCR LF)、BOM、UTF-8以外の文字コード(Shift_JISなど)でもハッシュは変わります。日本語の文字はUTF-8では1文字3バイトになるため、同じ文字列でもShift_JISで保存したファイルとは結果が異なります。
ハッシュとパスワード
SHA-256やMD5のような高速なハッシュは、パスワードの保存には向きません。攻撃者が1秒間に何十億回も試せるからです。代わりに、Argon2、scrypt、bcryptのような低速でソルト付きのアルゴリズムを使ってください。
ハッシュはブラウザーのWeb Crypto APIで計算します。テキスト、ファイル、照合用の値は送信も保存もされず、アドレスバーにも入りません。
よくある質問
ハッシュ生成とは何ですか?
データからハッシュ関数で決まった長さの値を作ることです。同じデータなら必ず同じ値になり、少しでも変わると別の値になるため、ファイルが改変されていないかの確認や、データの識別に使われます。
ファイルのSHA-256ハッシュを調べるには?
「またはファイルのハッシュを計算」でファイルを選ぶと、結果の一番上にSHA-256の値がすぐに表示されます。ファイルはブラウザー内で読み込むだけで、アップロードはされません。
ハッシュは復号できますか?
できません。ハッシュは暗号化ではなく一方向関数です。ただし、短い入力やよくある入力(弱いパスワードなど)は、総当たりや事前計算した表で一致する入力を見つけられてしまいます。
MD5はまだ安全ですか?
いいえ。MD5は2004年から破られており、普通のパソコンで数秒で衝突を作れます。安全性が必要な用途ではSHA-256以上を使ってください。通信エラーを確かめるチェックサムとしては今も使えます。
コマンドで計算したハッシュと一致しないのはなぜですか?
最も多い原因は改行です。echo "text" | sha256sumは末尾に\nを付けます。echo -nやprintfを使ってください。改行コード(WindowsのCR LF)や文字コード(Shift_JISとUTF-8)の違いでもハッシュは変わります。
16進数とBase64の出力の違いは?
同じハッシュを別の書き方で表しているだけです。16進数は1バイトを2文字で表し(SHA-256は64文字)、Base64はより短くなります(44文字)。Base64は、たとえばSubresource Integrity(integrity="sha256-…")で使われます。
出典・根拠
- FIPS 180-4: NIST FIPS 180-4 – Secure Hash Standard (SHS)
- NIST – Example values for SHA-1, SHA-256, SHA-384, SHA-512 (test vectors)
- RFC 1321: RFC 1321 – The MD5 Message-Digest Algorithm (Appendix A.5 test suite)
- RFC 6151: RFC 6151 – Updated Security Considerations for MD5 and HMAC-MD5
- NIST – Transitioning away from SHA-1 (SP 800-131A Rev. 2)
- MDN Web Docs – SubtleCrypto.digest()
更新日:
関連ツール
- Base64エンコード・デコードBase64・Base64urlのエンコードとデコードをUTF-8で正しく変換。日本語も文字化けしません。URLエンコード・デコードにも対応した無料ツールです。
- パスワード生成ツール安全なランダムパスワードと覚えやすいパスフレーズを無料で生成。強度をビット数で表示し、生成はブラウザ内で完結。送信も保存もされません。
- UUID生成ツール:UUID v4・v7の生成と検証UUIDをオンラインで生成できる無料ツールです。v4(ランダム)とv7(時刻順)を最大1,000個まで一括生成。UUIDのバージョンや日時も解析できます。
- 正規表現チェックツールJavaScriptの正規表現をその場でチェックできるテストツール。一致した箇所を色付きで表示し、キャプチャグループを一覧に、パターンの意味を1つずつ日本語で解説します。
- ルーン(Luhn)アルゴリズムのチェックディジット計算・検証Luhnアルゴリズム(モジュラス10、ISO/IEC 7812-1)で番号を検証、またはチェックディジットを計算。形式チェックのみで、処理はブラウザ内で完結します。
- CSS box-shadowジェネレーターCSSのbox-shadowをスライダーで作成。複数の影、オフセット、ぼかし、広がり、透明度付きの色、inset、プリセットに対応し、プレビューを見ながらCSSをコピーできます。