ハッシュ値計算ツールの使い方
- 「テキスト」か「ファイル」を選びます。
- テキストを入力するか、ファイルを選択またはドロップすると、5 種類のハッシュ値が同時に表示されます。
- ダウンロードの確認には、配布元のサイトにあるハッシュ値を「ハッシュ値を照合」欄に貼り付けます。一致したアルゴリズムが表示されます。
- 各行の「コピー」で値をコピーします。Windows のツールと同じ大文字表記にしたいときは「大文字で表示」をオンにします。
ハッシュ値とは
ハッシュ関数は、どんな長さのデータからも決まった長さの値(ハッシュ値、ダイジェスト)を作る関数です。同じ入力からは必ず同じ値が得られ、1 ビットでも違えばまったく別の値になります。MD5 は 128 ビット(16 進数 32 桁)、SHA-1 は 160 ビット(40 桁)、SHA-256 は 256 ビット(64 桁)、SHA-512 は 512 ビット(128 桁)です。
ハッシュ値から元のデータを復元することはできません。そのため、ファイルの完全性チェック、改ざん検知、重複データの判定、電子署名などに使われています。
ダウンロードしたファイルを SHA-256 で確認する方法
Ubuntu や Python などの配布サイトには、ファイルごとに SHA-256 のチェックサムが掲載されています。「ファイル」を選んでダウンロードしたファイルを指定し、公開されている値を照合欄に貼り付けてください。「一致」なら配布元が公開したものとまったく同じファイルで、「不一致」なら破損している、途中までしかダウンロードできていない、または別のファイルということになります。
コマンドで確認する場合は、Windows なら certutil -hashfile ファイル名 SHA256 または PowerShell の Get-FileHash ファイル名、macOS なら shasum -a 256 ファイル名、Linux なら sha256sum ファイル名 です。Windows は大文字で表示しますが、照合欄は大文字・小文字や空白の違いを無視します。
MD5 と SHA-1 は安全性の用途には使わない
MD5(2004 年)と SHA-1(2017 年に Google が公開した SHAttered)には、同じハッシュ値を持つ別のデータを意図的に作る衝突攻撃が実証されています。そのため電子署名や証明書など、悪意を持った偽造を防ぐ目的には使えません。偶然の破損チェックやキャッシュのキーとしてなら今でも問題なく使えます。安全性が必要な場面では、CRYPTREC や NIST が推奨する SHA-256 以上を選んでください。
パスワードをハッシュ値のまま保存しない
MD5 や SHA-256 は高速に計算できるよう設計されているため、GPU を使えば 1 秒に数十億回もパスワードを試せてしまいます。パスワードの保存には、ソルトを付けて意図的に遅く計算する Argon2id、bcrypt、scrypt などの専用アルゴリズムを使います。
よくある質問
ハッシュ値から元のデータに戻せますか?
戻せません。ハッシュは暗号化ではなく、鍵もありません。「MD5 復号」をうたうサイトは、よく使われる単語や流出したパスワードのハッシュ値を大量に記録した表から探しているだけで、ランダムなデータのハッシュは元に戻せません。
他のツールとハッシュ値が違うのはなぜですか?
入力がわずかに違うことがほとんどです。末尾の改行(echo は -n を付けないと改行を含めます)、Windows の改行コード(CRLF)、余分な空白、文字コードの違い(Shift_JIS と UTF-8)などを確認してください。このツールは入力されたテキストをそのまま UTF-8 で計算します。
社外秘のファイルを使っても大丈夫ですか?
大丈夫です。ファイルはブラウザの Web Crypto API で端末内で計算され、どこにもアップロードされません。
ファイルサイズの上限はありますか?
ファイルをメモリに読み込むため、数百 MB 程度までなら多くのパソコンで問題なく計算できます。数 GB の ISO イメージなどはブラウザでは失敗することがあるので、上記のコマンドを使ってください。
どのアルゴリズムを使えばいいですか?
ほとんどの場合は SHA-256 で十分です。MD5 や SHA-1 は、配布元がその形式でチェックサムを公開している場合の照合用に使ってください。
大文字と小文字の違いは関係ありますか?
関係ありません。16 進数は大文字・小文字を区別しないので、A1B2 と a1b2 は同じ値です。照合欄も大文字・小文字と空白を無視して比較します。
最終更新: ソースコードを見る