ハッシュとは?
ハッシュ関数は、どんな長さのデータも決まった長さの「指紋」に変換します。同じ入力からは必ず同じ結果になり、1 文字でも変わると結果はまったく別物になります。また、ハッシュから元のデータを復元することはできません。ダウンロードしたファイルの確認、データの変更検出、キャッシュのキーなどに使われます。
使い方
- アルゴリズムを選びます。「すべてのアルゴリズム」を選ぶと一度にすべて計算します。
- 「入力」に入力します。「自動計算」がオンなら、入力を止めるとすぐに結果が表示されます。
- 必要に応じて入力エンコードと出力形式を変えたり、HMAC をオンにしてキーを入力したりします。
アルゴリズムの比較
| アルゴリズム | 長さ(Hex) | 用途 |
|---|---|---|
| MD5 | 32 文字 | チェックサムやキャッシュのキー。安全性は破られているため、セキュリティ用途には使わないこと |
| SHA-1 | 40 文字 | 古いシステム(Git など)との互換性。セキュリティ用途には非推奨 |
| SHA-256 | 64 文字 | 現在もっとも広く使われている選択肢 |
| SHA-384 / SHA-512 | 96 / 128 文字 | より長い結果が必要な場合 |
HMAC とは?
HMAC はハッシュにシークレットキー(共通鍵)を組み合わせたもので、鍵を知っている人だけが同じ結果を作れます。多くのサービスが API リクエストの署名や、Webhook が本当に自分たちから送られたことの証明に使っています。決済サービス、GitHub、LINE などはいずれも HMAC-SHA256 を使っています。HMAC をオンにしてキーを入力してください。キーはテキスト、Hex、Base64 のいずれでも指定できます。
入力エンコードと出力形式
- 入力エンコード:同じテキストでもエンコードが違えばバイト列が変わり、ハッシュも変わります。通常は UTF-8 を選びます。Hex や Base64 を選ぶと、それが表す生のバイト列に対してハッシュを計算します。
- 出力形式:Hex(小文字・大文字)または Base64。API の署名では Base64 を求められることがよくあります。
例
abcの MD5:900150983cd24fb0d6963f7d28e17f72abcの SHA-256:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad- キー
key、メッセージThe quick brown fox jumps over the lazy dogの HMAC-SHA256:f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
ファイルのハッシュと比較
- ファイルのハッシュ:ファイルを入力欄にドラッグするか、「ファイルを選択」を押します(最大 200 MB)。ファイルの内容から直接計算するので、ダウンロードしたファイルが完全かどうかの確認に使えます。
- 比較:ダウンロードサイトに記載されたハッシュ値を「期待されるハッシュ値と比較」に貼り付けると、一致するかどうかが表示されます。Hex の大文字・小文字は区別しません。「すべてのアルゴリズム」では、どのアルゴリズムで一致したかも表示します。
よくある質問
ハッシュは復号できますか?
できません。ハッシュは一方向の計算なので、復号するものがありません。いわゆる「MD5 復号サイト」は、よくある文字列を事前に計算した巨大な表から探しているだけです。単純なパスワードが見つかりやすいのはそのためです。
ほかのツールと結果が違うのはなぜ?
たいてい入力がわずかに違っています。余分なスペースや改行、改行コードの違い(Windows の CRLF と Unix の LF)、文字エンコードの違いなどです。入力がまったく同じで、同じ入力エンコードを使っているか確認してください。
ユーザーのパスワードを MD5 や SHA-256 で保存してよいですか?
いいえ。これらのアルゴリズムは高速なので、攻撃者も高速に推測を試せます。bcrypt、scrypt、Argon2 などのパスワード用ハッシュアルゴリズムを使ってください。
HMAC キーは保存されますか?
保存されません。計算はブラウザ内で行われます。入力内容と設定は記憶されますが、HMAC キーは意図的に記憶しないため、再読み込み後はもう一度入力する必要があります。