カテゴリー: 開発ツール
HMAC ジェネレーター
共有秘密でメッセージに署名
メッセージと秘密鍵を入力すると、SHA-1・SHA-256・SHA-384・SHA-512 の HMAC を16進または Base64 でまとめて表示します。鍵がブラウザから出ることはありません。
HMAC-SHA1
ここに結果が表示されます。
HMAC-SHA256
ここに結果が表示されます。
HMAC-SHA384
ここに結果が表示されます。
HMAC-SHA512
ここに結果が表示されます。
鍵もメッセージもこのページから出ません。アップロードも保存も記録もされません。
このページの処理はすべてブラウザ内で行われます。アップロードは一切ありません。
このツールでできること
HMAC は、共有秘密を持つ相手から届き、途中で変わっていないことを示すための仕組みです。Webhook の提供元はペイロードにこれで署名し、API ゲートウェイは毎回のリクエストで要求し、署名付き URL もたいていはパスと有効期限に対する HMAC です。うまくいかない原因はアルゴリズムよりも鍵にあります。16進で印刷された秘密はバイト列であって a〜f という文字ではなく、テキストとして読むとまったく別の署名になります。ここでは鍵が何であるかを指定でき、4種類のダイジェストはブラウザの Web Crypto API で計算され、結果は提供元が指定する欄にそのまま貼れる16進または Base64 で表示されます。
使い方
- 秘密鍵がテキストか16進か Base64 かを選びます。
- 鍵と、署名したいメッセージ本文をそのまま入力します。
- 提供元が求めるダイジェストの署名をコピーします。
プライバシー
このツールはすべてブラウザ内で動作します。入力した内容がアップロード・保存・共有されることはなく、タブを閉じれば消えます。
よくある質問
- 秘密鍵はどこかに送信されますか。
- いいえ。鍵はこのページ内でブラウザの Web Crypto 実装が使うだけです。アップロードも保存も記録もされず、タブを閉じれば消えます。
- 署名が提供元のものと一致しません。
- ほとんどの場合、メッセージか鍵が1バイト違っています。送信されたままの生のリクエストボディを空白も含めて署名し、鍵がテキストではなく16進バイト列でないか確認してください。
- HMAC-SHA1 はまだ使えますか。
- それを要求する古いサービスと連携する場合だけです。HMAC-SHA1 は素の SHA-1 のように破られてはいませんが、新規なら SHA-256 が妥当です。