Kit — ハッシュ値

ハッシュ値の計算・照合

ダウンロードしたファイルが途中で壊れていないか、配布元が公開している値と同じものかを、ブラウザだけで確かめられます。SHA-256/SHA-512/SHA-384/SHA-1/MD5/CRC32に対応。貼り付けた値との照合は自動で、桁数からアルゴリズムを判定します。

まだ何もありません

大文字小文字・前後の空白・区切りのコロン・後ろに付いたファイル名は無視します。桁数からアルゴリズムを判定します(8桁=CRC32、32桁=MD5、40桁=SHA-1、64桁=SHA-256、96桁=SHA-384、128桁=SHA-512)。

この処理はブラウザ内で完結します。ファイルはどこにも送信されません。

このツールの考え方

ファイルを送らずに計算する

多くのオンラインのハッシュ計算サイトは、ファイルを一度サーバーへ送ってから計算します。ここでは読み込みも計算もブラウザの中で行うため、社外に出せないファイルや個人のデータでもそのまま扱えます。

目視で64桁を比べさせない

期待される値を貼り付ける欄があり、一致するかどうかを大きく表示します。桁数からアルゴリズムを判定し、大文字小文字・前後の空白・区切りのコロン・後ろに付いたファイル名も自動で無視するので、コピーしたまま貼り付けられます。

弱いアルゴリズムを黙って使わせない

MD5とSHA-1は衝突が実証済みです。それでも配布元がMD5しか公開していない場面は今も多いため計算はできるようにしたうえで、「一致の確認には使えるが改ざんの検出には使えない」という位置づけを画面に出しています。

ハッシュ値の読み方

ハッシュ値とは何ですか?データ全体を決まった長さの値に変換したものです。同じデータからは必ず同じ値が出て、1バイトでも違えば全く別の値になります。だからファイルが壊れていないか、配布元のものと同じかの確認に使えます。
暗号化とは違うのですか?違います。暗号化は鍵があれば元に戻せますが、ハッシュは元に戻す手段がありません(一方向)。「ハッシュ化したから暗号化されている」という説明は正しくありません。中身を秘密にする用途には使えません。
MD5とSHA-1は使ってはいけないのですか?用途によります。中身の違う2つのデータから同じ値を作る攻撃が実証されているため、悪意ある改ざんの検出には使えません。一方で「回線の途中で壊れていないか」「配布元が公開しているMD5と同じか」の確認には今でも使えます。自分で選べる場面ではSHA-256を使ってください。
CRC32もハッシュですか?厳密には誤り検出用のチェックサムで、ZIPなどが内部で使っている値と同じものです。転送中の偶然の破損を見つける目的で設計されており、改ざんの検出には使えません。

よくある質問

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

されません。読み込みも計算もブラウザ内で完結します。ページを閉じれば何も残りません。

大きいファイルでも計算できますか?

ブラウザのハッシュ計算APIは分割処理に対応していないため、ファイル全体をメモリに載せる必要があります。目安として500MBを超えると端末によっては失敗します。失敗したときは他のタブを閉じ、1件ずつ試してください。

同じファイルのはずなのに配布元と値が違います

1バイトでも違えば全く別の値になります。まず貼り付けた値に取りこぼしがないかを確認してください。テキストエディタで開いて保存し直すと改行コード(LF/CRLF)や文字コードが変わることがあるので、ダウンロードしたファイルをそのまま計算してください。

パスワードの保存に使えますか?

使えません。SHA-256などは高速に計算できるよう作られていて、それがパスワード保存では弱点になります。総当たりを遅くする専用の方式(bcrypt・scrypt・Argon2など、ソルトを含み計算コストを調整できるもの)を使ってください。

テキスト欄とファイルで値が違うのはなぜですか?

テキスト欄の改行は、ブラウザの仕様上すべてLFとして扱われます。CRLFで保存されたファイルとは中身が違うので、値も変わります。ファイルを確かめるときは「ファイル」を選んでください。