ハッシュとは何ですか
ハッシュとは、どんな長さのデータでも決まった長さの文字列に要約する計算です。たとえばSHA-256は、入力が1文字でも10GBの動画ファイルでも、必ず64桁の16進数文字列を返します。同じ入力からは常に同じハッシュ値が得られ、入力がたった1ビットでも変わればハッシュ値はまったく異なるものになります。この性質のおかげで、ハッシュは「2つのデータが本当に同じかどうか」を素早く確認する手段として広く使われています。
使い方
テキストを貼り付けるか、ファイルをドラッグ&ドロップすると、選んだアルゴリズムのハッシュ値が計算されます。複数のアルゴリズムを同時に選ぶことができ、結果は16進数(小文字・大文字)またはBase64で表示できます。大きなファイルは一度にメモリへ読み込まず、少しずつ分割しながら計算するため、計算中は進捗が表示され、いつでもキャンセルできます。配布元から受け取ったハッシュ値があれば、比較欄に貼り付けるだけで一致するかどうかを確認できます。
ファイルの整合性を確認する方法
ソフトウェアやディスクイメージのダウンロードページには、「SHA-256: 3a7bd3e2…」のようにハッシュ値が併記されていることがよくあります。受け取ったファイルを同じアルゴリズムでここで計算し、その文字列と一致すれば、ファイルは転送中に壊れたり別のファイルにすり替わったりしていないということです。値が一致しない場合はもう一度ダウンロードし直してください。この確認は、配布元が公開している値自体が改ざんされていないことを前提にしています。
MD5とSHA-1:今も使われるが安全ではない
MD5(128ビット、16進数32桁)とSHA-1(160ビット、16進数40桁)は計算が速く、長く使われてきたため、今でもチェックサム用途でよく見かけます。しかし、どちらも異なる入力から同じハッシュ値を作り出す「衝突」が見つかっています。MD5は2004年に、SHA-1は2017年の「SHAttered」研究で、実際の衝突例が公開されました。そのため、電子署名や証明書のように誰かが意図的に値を偽造しようとする可能性があるセキュリティ用途では、SHA-256・SHA-384・SHA-512のようなより長いハッシュが使われます。ただし、パスワードの保存は別です。MD5・SHA-1・SHA-2・SHA-3のような汎用ハッシュは計算が速すぎるため、パスワードの保存には向きません。Argon2id・scrypt・bcryptのような、あえて計算を遅くしたパスワード専用のハッシュ関数を使ってください。単に転送中の破損の有無だけを確認するチェックサムであれば、MD5・SHA-1は今でも実用的です。
プライバシー:ブラウザの中だけで計算されます
このツールはWebAssemblyで作られたハッシュライブラリをブラウザの中で直接実行します。テキストもファイルも、このページの外に送信されることはなく、サーバーに保存されることもありません。ページを一度読み込んだ後であれば、インターネット接続が切れていても使い続けられます。