ハッシュ生成ツール
ブラウザ内で動作し、何もアップロードされません
テキストやファイルのMD5、SHA-1、SHA-256、SHA-384、SHA-512のハッシュとHMACを計算し、手元のハッシュと照合できます。
Input
Hashes
Nothing to hash yet
ハッシュとは?
ハッシュ関数は、どんな入力も固定長の指紋に変換します。同じ入力からは常に同じハッシュが得られ、1バイト変わるだけでまったく別のハッシュになり、ハッシュから元の入力を求めることはできません。MD5は128ビット、SHA-1は160ビット、SHA-256・SHA-384・SHA-512は名前のとおりのビット数を出力し、ここでは16進数またはBase64で表示します。
開発者はハッシュを使って、データが変わっていないかを確認します。ダウンロードページにSHA-256のチェックサムが載っているのは、受け取ったファイルが公開されたものと同じかを確かめられるようにするためです。HMACは、ハッシュに秘密鍵を組み合わせたものです。Webhookの提供元や多くのAPIはリクエストごとにHMAC-SHA256で署名し、受信側は生のボディから同じHMACを計算して、リクエストが本物であることを確認します。
MD5とSHA-1はセキュリティ面ではすでに破られており、攻撃者は同じハッシュを持つ異なる2つの入力を作れます。偶然の変更を見つける用途ならまだ使えますが、誰かが偽造しようとする可能性があるものにはSHA-256以上を使ってください。また、単純なハッシュはパスワードの保存方法としても不適切です。パスワードにはArgon2、scrypt、bcryptのような、ソルト付きの低速なアルゴリズムが必要です。
使い方
- 1Input パネルにテキストを入力または貼り付けます。UTF-8として処理され、入力に合わせてハッシュが更新されます。
- 2ファイルのハッシュを計算するには、Hash a file(Ctrl+O)を選ぶか、ファイルを入力欄にドロップします。ファイルのバイト列は、ディスク上のとおりにブラウザ内で処理されます。
- 3出力形式を、16進数、大文字の16進数、Base64から選びます。各行のボタンで1つのハッシュを、Copy all ですべてをコピーします。
- 4HMACを計算するには、モードを HMAC に切り替えて、鍵をテキストまたは16進数のバイト列で入力します。
- 5受け取ったハッシュを確認するには、Compare に貼り付けます。16進数でも、Base64でも、チェックサムファイルの1行でも、どのアルゴリズムと一致するかを表示します。
トラブルシューティング
- コマンドラインで計算したハッシュと一致しない
- ハッシュは正確なバイト列に対して計算されます。
echoは改行を付け加えるので、echo -nかprintfを使ってください。末尾の空白や文字コードの違いでも結果は変わります。 - Windowsの改行コードを含むテキストで、ハッシュが違う
- ブラウザはエディター内のテキストの改行を
\nに変換するため、貼り付けたテキストはLFの改行で計算されます。CRLFの改行を含むファイルの正確なバイト列でハッシュを計算するには、貼り付けずにファイルを開いてください。 - Webhookの署名が一致しない
- JSONのパースや整形をする前に、受け取ったままの生のリクエストボディに対して、同じ鍵とアルゴリズムでHMACを計算してください。署名をBase64で送る提供元もあれば16進数で送る提供元もありますが、Compare はどちらにも対応しています。
- 鍵が有効な16進数ではありません
- 16進数モードでは、鍵は0–9とa–fの2桁ずつの組でなければなりません。鍵の文字をUTF-8として使うには、鍵の形式をテキストに切り替えてください。
よくある質問
テキストやファイルはサーバーに送信されますか?
いいえ。SHA-1とSHA-2系のハッシュはブラウザのWeb Crypto APIで、MD5はページ内のコードで計算されます。ファイルは最大200 MBまでブラウザ内で読み込まれ、何もデバイスの外に出ません。
ハッシュを元に戻したり、復号したりできますか?
できません。ハッシュは一方向です。MD5を元に戻せるとうたうサイトは、よく使われる単語やパスワードのハッシュ表から検索しているだけで、弱い入力にしか通用しません。
どのアルゴリズムを使えばよいですか?
チェックサム、署名、セキュリティに関わるものにはSHA-256を使ってください。SHA-384とSHA-512も安全です。MD5やSHA-1は、既存のシステムで必要な場合だけにしてください。