このツールについて
テスターは、ダウンロードした成果物の検証、ファイルを開かずに比較する、そして最もよくあるのが Webhook の署名を確認するためにハッシュを必要とします。このツールはテキストやローカルファイルの MD5 と SHA ファミリーを計算し、GitHub、Shopify、ほとんどの決済サービスが Webhook に署名するのと同じ方法で、ペイロードに秘密鍵で署名する HMAC モードも備えています。署名ヘッダーの値を比較欄に貼り付ければ、テスト用のペイロードと秘密鍵でそれを再現できるかがすぐにわかります。SHA と HMAC にはブラウザの Web Crypto API を使います。Web Crypto には MD5 がないため、MD5 は RFC 1321 のテストスイートで検証した小さな実装を使っています。ファイルはブラウザ内で読み込まれ、アップロードされることはありません。
使い方
- 「Hash」(ハッシュ)か「HMAC」と、入力がテキストかファイルかを選びます。
- テキスト(UTF-8 としてエンコード)を貼り付けるか、ファイルを選びます。
- HMAC モードでは、アルゴリズムを選び、秘密鍵をテキストか 16 進数で入力します。
- 結果を 16 進数か Base64 でコピーするか、期待値を貼り付けて比較します。
ハッシュ・HMAC 生成ツール のよくある質問
Webhook の署名が一致しないのはなぜですか?
ほとんどの場合、ボディが 1 バイト違っているためです。整形された、キーが並べ替えられた、改行コードが変わった、などです。受け取ったとおりの生のリクエストボディに署名し、サービス側がタイムスタンプの接頭辞など追加のデータにも署名していないか確認してください。
MD5 や SHA-1 は安全に使えますか?
セキュリティ目的では使えません。どちらにも現実的な衝突が見つかっています。偶発的な破損の検出やレガシーシステムのテストには問題ありませんが、セキュリティに関わるものには SHA-256 以上を使ってください。
同じテキストなのに別のツールでハッシュが異なるのはなぜですか?
ハッシュはバイト列に対して計算されます。エンコーディングの違い(UTF-8 と UTF-16)、末尾の改行、Windows の CRLF 改行はすべて結果を変えます。このツールはテキスト欄の正確な UTF-8 バイト列をハッシュします。