ハッシュ生成:SHA-256・SHA-512・SHA-1・MD5

テキストを入力するかファイルを選ぶと、SHA-256、SHA-384、SHA-512、SHA-1のハッシュ値をすぐに計算します。MD5も必要に応じて計算できます。ダウンロードページなどに載っている期待値を貼り付ければ、その場で照合できます。処理はすべてブラウザー内で行い、ファイルはアップロードされません。

MD5は安全ではありません。簡単なチェックサム用途に限ってください。
このテキストがそのままUTF-8でハッシュ化されます。スペースや末尾の改行が1つ増えるだけで、まったく別のハッシュになります。

入力したテキストはブラウザー内にとどまります。送信・保存されず、アドレスバーにも表示されません。

ファイルはこの端末内で読み込むだけで、アップロードはされません(最大512 MB)。

結果

SHA-256
125aeadf27b0459b8760c13a3d80912dfa8a81a68261906f60d87f4a0268646c
SHA-1
20427a708c3f6f07cf12ab23557982d9e6d23b61
SHA-384
2d49de1f67f07ad9760a7debae02257f5ea473537310105630583d1d201646d8f5051aa6ee91a0930cc222491bb05ff3
SHA-512
bb2b0b573e976d4240fd775e3b0d8c8fcbd058d832fe451214db9d604dc7b3817f0b1b030d27488c96fc0e008228172acdd5e15c26f6543d5f48dc75d8d9a662
対象
テキスト、15バイト(UTF-8)

計算方法

ハッシュ関数は、任意の長さのデータを決まった長さの値(ハッシュ値、ダイジェスト、チェックサム)に変換します。同じ入力からは必ず同じハッシュが得られ、1文字変えるだけでまったく別の値になります。ハッシュ値から元の入力を逆算することはできません。

ハッシュを生成する手順

  1. テキストを入力するか、ファイルを選びます。
  2. 出力形式(16進数の小文字・大文字、Base64)を選び、必要なら「MD5も計算する」にチェックを入れます。
  3. 必要なハッシュをコピーするか、期待するハッシュを貼り付けて照合します。

各アルゴリズムの特徴

ダウンロードしたファイルの確認

多くのプロジェクトは、ファイルと一緒に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-…")で使われます。

出典・根拠

更新日:

関連ツール