ハッシュ生成ツール
テキストまたはファイルから、MD5・SHA-1・SHA-256・SHA-384・SHA-512のハッシュ値(チェックサム)をまとめて計算します。処理はすべてブラウザ内で完結し、入力内容がサーバーへ送信されることはありません。
ハッシュ生成の使い方
入力方法を選ぶ
「テキスト」か「ファイル」のどちらかを選びます。ファイルはPCから選択すると、選んだ時点で自動的に計算が始まります。
内容を入力する
テキストなら入力欄に貼り付け、ファイルなら「ファイル選択」から対象を選びます。入力と同時にMD5・SHA-1・SHA-256・SHA-384・SHA-512の5種類が計算されます。
結果を比較・コピーする
配布元が公開しているハッシュ値と見比べて一致するか確認します。各行の「コピー」で値だけをクリップボードへコピーできます。
仕組みと考え方
ハッシュ関数は、任意の長さのデータから固定長の値(ダイジェスト)を作る一方向の計算です。元データが1ビットでも変わればハッシュ値は大きく変化するため、ダウンロードしたファイルが壊れていないか、改ざんされていないかを確認する用途(チェックサム検証)で広く使われます。SHA-1・SHA-256・SHA-384・SHA-512はブラウザ標準のWeb Crypto API(crypto.subtle.digest)でその場で計算し、入力はブラウザ内で処理されるためサーバーへは送信されません。
MD5だけはWeb Cryptoに実装が無いため、本ツールはRFC 1321の仕様に基づくアルゴリズムをJavaScriptで自前実装しています。既知のテストベクタ(空文字列やabc等)で計算結果を確認したうえで公開していますが、ブラウザ実装のためNode.jsやOpenSSLの実装と比べて処理速度は劣ります。
MD5とSHA-1は衝突(異なる入力から同じハッシュ値が作られること)が実証されており、パスワードの保存や署名など安全性が求められる用途には適しません。現在も使われているのは主に、ファイルの破損検知や重複ファイルの検出など、悪意ある攻撃者を想定しない場面です。安全性が必要な照合にはSHA-256以上を使ってください。
使いどころ・注意点
- 配布サイトが公開する「SHA256: xxxx」等の値と、ダウンロード後に計算した値を比較してファイルの破損・改ざんの有無を確認する。
- パスワードや個人情報のハッシュ化にMD5・SHA-1を使わない。安全性が必要な場面ではSHA-256以上、できれば専用のパスワードハッシュ関数(bcrypt等)を使う。
- 大きなファイルは計算に時間がかかることがある。「計算中です」の表示が出ている間はページを閉じずに待つ。
- 同じファイルでも改行コードや文字コードが違うテキストファイルは中身のバイト列が変わるため、ハッシュ値も変わる。
よくある質問
入力したテキストやファイルは保存・送信されますか?
いいえ。計算はブラウザ内のJavaScriptだけで行い、当サイトのサーバーへは送信していません。ページを閉じると結果は残りません。
MD5とSHA-256はどちらを使えばよいですか?
ファイルの破損確認などの一般的な用途ではどちらでも目的を果たせますが、配布元がSHA-256を公開している場合はそちらを優先してください。安全性が必要な照合にはMD5・SHA-1を避け、SHA-256以上を使うことを推奨します。
同じファイルなのにハッシュ値が違います。
ファイルの中身が1バイトでも異なると全く違うハッシュ値になります。ダウンロードが途中で失敗している、改行コード(LF/CRLF)が変換されている、文字コードが違う、のいずれかが多い原因です。
大きなファイルを計算すると固まったようになります。
特にMD5はJavaScriptによる自前実装のため、大きなファイルでは計算に数秒〜十数秒かかることがあります。200MBを超えるファイルは対象外としています。
ハッシュ値から元のテキストやファイルを復元できますか?
できません。ハッシュ関数は一方向の計算で、ダイジェストから元データを逆算することは設計上できません(総当たりで同じ値を作る入力を探すことは可能な場合があります)。