ハッシュ値計算(SHA-256・MD5)

ファイルや文字列のハッシュ値を、MD5・SHA-1・SHA-256・SHA-384・SHA-512・CRC32 でまとめて計算します。公式サイトに載っているチェックサムを貼り付ければ、ダウンロードしたファイルと一致するかをその場で確かめられます。ファイルはアップロードせず、ブラウザの中だけで計算します。

計算する種類と表示形式

ファイルのハッシュ値

ファイルはいったんメモリに読み込んで計算します。目安としてパソコンで 1〜2GB、スマホではそれより小さいファイルまで扱えます。

ハッシュ値の照合(チェックサムの確認)

大文字・小文字、区切りのスペースやコロン、Base64 表記の違いは無視して比べます。1行に1つずつ、上のファイルと下のテキストの結果すべてと照合します。

テキストのハッシュ値

例:

HMAC(鍵つきハッシュ)で計算する

Webhook の署名や API のリクエスト署名の確認に。鍵はこのページの中だけで使い、保存も送信もしません。

結果

このツールでできること

ハッシュ値は、データから決まった手順で計算する「指紋」のような短い値です。同じデータからは必ず同じ値が出て、1ビットでも違えばまったく別の値になります。このツールは、ファイルや文字列のハッシュ値を MD5・SHA-1・SHA-256・SHA-384・SHA-512・CRC32 の6種類で一度に計算します。

よく使うのは、ソフトウェアやOSのイメージ(ISOファイル)をダウンロードしたあと、配布元が公開している SHA-256 などの値と照らし合わせて、途中で壊れていないか・すり替えられていないかを確かめる場面です。照合欄に公式の値を貼れば一致・不一致がすぐわかり、SHA256SUMS のような「ハッシュ値+ファイル名」の一覧も、ファイル名ごとに照合します。ほかに、2つのファイルが同じ中身かの確認、プログラムで計算した値の検算、Webhook の HMAC 署名のデバッグにも使えます。

使い方

  1. 「計算する種類」で必要なハッシュの種類にチェックを入れます(迷ったら SHA-256)。
  2. ファイルなら枠にドロップするか、タップして選びます。文字列なら「テキストのハッシュ値」の欄に入力します。
  3. 結果の「コピー」で値をコピーできます。複数ファイルは「sha256sum 形式でまとめてコピー」で一覧にできます。
  4. 確認したい値があれば「ハッシュ値の照合」に貼り付けます。一致した行が緑になり、どのファイルのどの種類と一致したかが表示されます。

知っておくと便利なこと

値の長さで種類がわかる

16進数で書いたときの文字数は、CRC32 が8文字、MD5 が32文字、SHA-1 が40文字、SHA-256 が64文字、SHA-384 が96文字、SHA-512 が128文字と決まっています。公式サイトの値に種類が書かれていなくても、長さを数えれば見当がつきます。照合欄で一致しなかったときは、長さから推測した種類を表示します。

MD5・SHA-1 は「安全」の確認には使わない

MD5 は2004年、SHA-1 は2017年に、同じハッシュ値になる別のデータ(衝突)を作る方法が実際に示されています。通信中の偶然の破損を見つける用途ならいまも役に立ちますが、悪意のある改ざんを見抜く目的では SHA-256 以上を使います。CRC32 はZIPファイルなどの誤り検出用で、暗号的な強さはありません。また、パスワードの保存に SHA-256 をそのまま使うのは不適切で、bcrypt や Argon2 のような専用の方式を使います。

文字列のハッシュ値が合わないときは改行を疑う

文字列のハッシュ値は、文字コードと改行で変わります。たとえば echo "abc" | sha256sum は末尾に改行が付いた「abc+改行」の値になり、「abc」だけの値とは一致しません(echo -n なら一致します)。Windows で作ったテキストは改行が CRLF です。このツールは UTF-8 で計算し、改行コードと末尾の改行を切り替えられます。

パソコンのコマンドで確かめるには

環境コマンドの例(SHA-256)
Windows(コマンドプロンプト)certutil -hashfile ファイル名 SHA256
Windows(PowerShell)Get-FileHash ファイル名
Macshasum -a 256 ファイル名
Linuxsha256sum ファイル名

certutil や Get-FileHash は大文字で表示しますが、16進数の大文字と小文字は同じ値です。

よくある質問

ファイルはどこかに送信されますか?
送信しません。ファイルはブラウザの中で読み込み、SHA 系はブラウザ標準の Web Crypto API、MD5 と CRC32 はページ内のプログラムで計算します。通信を切った状態でも動きます。
ハッシュ値から元のデータに戻せますか?
戻せません。ハッシュは一方向の計算です。ただし短いパスワードのような推測しやすい文字列は、候補を片っ端から計算して突き合わせる方法で見つかることがあるため、ハッシュ値だからといって公開してよいわけではありません。
大きなファイルで止まってしまいます。
ファイル全体をメモリに読み込むため、空きメモリが足りないと失敗します。数GBのISOファイルなどは、上の表のコマンドで計算するのが確実です。
公式サイトの値と一致しませんでした。
まず種類(SHA-256 か SHA-512 かなど)と、照合しているファイルが本当に同じ版か(バージョンや32/64ビット版)を確かめてください。それでも違うなら、ダウンロードが途中で壊れている可能性があるので、もう一度ダウンロードし直します。
HMAC とは何ですか?
秘密鍵とデータを組み合わせて計算するハッシュです。鍵を知っている人だけが同じ値を作れるので、Webhook や API で「正しい送り主からの、改ざんされていないデータか」を確かめる署名に使われます。