ハッシュ値計算とは?
ハッシュ関数は、どんな長さのデータも固定長の指紋のような値に変換します。1文字違うだけでハッシュ値はまったく別の値になるため、ダウンロードしたファイルが本物かを確かめるチェックサム、改ざん検知、APIリクエストの署名(HMAC)などに使われます。
SHA系はブラウザのWeb Crypto APIで、MD5は独自実装で計算します。大きなファイルは4MBずつ読み込んで進捗を表示し、サーバーにはアップロードされません。
使い方
- テキストタブに入力するか、ファイルタブでファイルを選びます。5種類のハッシュ値がすぐに計算されます。
- APIの署名など秘密鍵が必要な場合はHMACをオンにして鍵を入力します。
- 出力形式はhex小文字、HEX大文字、Base64から選べます。
- 配布元のチェックサムを照合するハッシュ値に貼り付けると、どのアルゴリズムと一致するかを表示します。
アルゴリズム別の長さと用途
| アルゴリズム | 長さ(hex) | 安全性 | 主な用途 |
|---|---|---|---|
| MD5 | 32文字 | 衝突攻撃が可能 | 簡易チェックサム、キャッシュキー |
| SHA-1 | 40文字 | 衝突攻撃が可能 | GitのオブジェクトID、レガシー |
| SHA-256 | 64文字 | 安全 | ファイル検証、ブロックチェーン、JWT |
| SHA-384 | 96文字 | 安全 | TLS、サブリソース完全性(SRI) |
| SHA-512 | 128文字 | 安全 | 高い安全性が必要な署名 |
例:SHA-256("abc") = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
パスワードの保存にハッシュだけを使ってはいけない理由
MD5やSHA-256は非常に高速なため、パスワードをそのままハッシュ化すると総当たり攻撃ですぐに破られます。パスワードはArgon2id、scrypt、bcryptのように意図的に遅く設計され、ソルトを使う専用の関数で保存しましょう(OWASP Password Storage Cheat Sheetの推奨)。
よくある質問
同じ文章なのに他のサイトとハッシュ値が違います。
ほとんどは文字コードか改行の違いです。このツールはUTF-8で計算します。末尾に改行が1つ多い場合や、Windowsの改行(CRLF)の場合は値が変わります。Shift_JISで計算したサイトとも値が一致しません。
ハッシュ値から元の内容を復元できますか?
ハッシュは一方向関数なので、計算で元に戻すことはできません。ただし短くてよくある文字列は、事前に計算した表(レインボーテーブル)で特定できるため、パスワードの保護には向きません。
大きなファイルも計算できますか?
1GBまで対応しています。4MBずつ読み込みながら進捗を表示し、100MBのファイルなら通常数秒で終わります。計算はすべて端末内で行われます。
HMACは通常のハッシュと何が違いますか?
HMACは秘密鍵を混ぜて計算するため、鍵を知っている人だけが同じ値を作れます。決済やWebhook、APIリクエストが偽造されていないかを確かめる署名に使われます(RFC 2104)。