ハッシュ値の計算

文字列やファイルから SHA-256 などのハッシュ値(チェックサム)を計算します。 配布元が公開している値を貼り付ければその場で一致判定ファイルはアップロードされず、端末の中だけで処理します。

計算はブラウザ内で完結します。ファイルを選んでも送信されません。

使い方

アルゴリズムを選び、文字列を入力するかファイルを選ぶだけです。 確かめたい値がある場合は、照合欄に貼り付けると一致・不一致がその場で表示されます。 大文字小文字の違いや、途中のコロン・ハイフンは自動で無視します。

ハッシュ値とは

どんな長さのデータからも決まった長さの短い値を作る計算のことです。 次の性質があるため、「データが同じかどうか」を短い文字列だけで確かめられます。

  • 同じ入力からは、いつでも必ず同じ値が出る
  • 1ビットでも違えば、まったく別の値になる
  • 値からもとのデータには戻せない
  • 同じ値になる別のデータを作るのが、現実的に不可能(SHA-256の場合)

アルゴリズムの選び方

名前長さ使いどころ
SHA-256256 ビット(16進64文字)現在の標準。ファイルの照合や署名で最もよく使われる
SHA-512512 ビット(16進128文字)SHA-256 より長い。64bit環境では速いこともある
SHA-384384 ビット(16進96文字)SHA-512 を切り詰めた仕様。TLSの証明書などで使われる
SHA-1160 ビット(16進40文字)衝突が発見済み。既存データの照合用にのみ使う

迷ったら SHA-256 を選んでください。配布ファイルの検証で最も広く使われています。 SHA-1 は既存のデータを照合する用途にとどめ、改ざんの検出には使わないでください。

1文字変えるとどうなるか

入力をほんの少し変えただけで、出力は元の値と何の関係もない値になります。 これを雪崩効果と呼びます。上のツールで「abc」と「abd」を試すと、実際に確かめられます。

SHA-256("abc")ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
SHA-256(空の文字列)e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

こんなときに使う

  • ダウンロードしたファイルの検証 — 配布元のチェックサムと突き合わせて、 壊れていないか・すり替えられていないかを確認する。
  • 2つのファイルが同一か確かめる — 名前や日付が違っても、 値が同じなら中身は同一です。
  • コピーの成否確認 — 大量のデータを移した後に、元と先で値を比べる。
  • データが変わったかの記録 — 内容そのものを残さずに、変化の有無だけを追える。

使うときの注意

  • ハッシュ値が一致しても「正規の配布元のものである」ことまでは保証されません。値の入手先も信頼できる必要があります。
  • 文字列は UTF-8 として符号化します。末尾の改行の有無でも値は変わります。
  • パスワードの保管にそのまま使わないでください。総当たりに耐える設計が別に必要です。
  • ファイルは200MBまで受け付けます。大きいファイルは計算に時間がかかります。

よくある質問

選んだファイルはアップロードされますか?

いいえ。ブラウザに標準で入っている Web Crypto という機能で、端末の中だけで計算しています。ファイルの中身が外部へ送信されることはありません。

ハッシュ値からもとの文字列に戻せますか?

戻せません。ハッシュは一方向の計算で、同じ入力からは必ず同じ値が出ますが、値から入力を復元することはできません。ただし短い単語やよくあるパスワードは、あらかじめ計算した表と照合されると判明します。パスワードの保管には、専用の方式(ソルト付きの遅いハッシュ)を使ってください。

MD5 は使えますか?

使えません。ブラウザ標準の Web Crypto が MD5 に対応していないためです。MD5 は異なるデータから同じ値を故意に作れることが確認されており、改ざんの検出には使えません。SHA-256 をお使いください。

ダウンロードしたファイルが壊れていないか確かめたいのですが。

配布元がチェックサム(SHA-256の値など)を公開している場合、「ファイル」を選んで計算し、その値を照合欄に貼り付けてください。一致すれば、途中で壊れたり書き換えられたりしていないことが確認できます。

同じ文字列なのに、他のツールと値が違います。

文字コードか改行コードが違う可能性が高いです。このツールは文字列を UTF-8 として符号化します。また、テキストの末尾に改行が入っていると別の値になります。

大文字と小文字のどちらが正しいのですか?

どちらも同じ値です。16進数の表記のちがいにすぎません。照合欄では大小の違いも、途中のコロンやハイフンも無視して比べます。

関連ツール

データの符号化なら Base64 変換URLエンコード、 文字がどのバイト列になるかは 文字コード変換 で確認できます。 中身の違いを目で見たいときは テキスト差分、 強いパスワードを作るなら パスワード生成 をどうぞ。