HMAC-SHA1ジェネレーター
メッセージと秘密鍵からHMAC-SHA1タグを計算します。両方をUTF-8でエンコードし、SHA-1を使ったRFC 2104のHMAC構造を適用して、160ビットの結果を40文字のhex形式またはBase64形式で返します。OAuth 1.0a署名、TOTPの内部処理、古いWebhook、HMAC-SHA1で署名するレガシーAPIを扱う開発者に役立ちます。キーはリクエスト内でのみ使用されます。
よくある質問
HMAC-SHA1とは何ですか?
HMAC-SHA1は、RFC 2104に従い、SHA-1と秘密鍵を組み合わせるメッセージ認証コードです。タグは20バイトで、40文字のhex形式または28文字のBase64形式で表示されます。
SHA-1が破られているのに、HMAC-SHA1はまだ安全ですか?
SHA-1の衝突があってもHMAC-SHA1は破られません。HMACの安全性はハッシュの別の特性に依存するためです。既存システムでは、HMAC-SHA1は引き続き許容可能とされています。新しい設計では、HMAC-SHA256を推奨します。
既知のHMAC-SHA1テストベクトルはありますか?
RFC 2202のテストケース2では、キーにJefe、メッセージにwhat do ya want for nothing?を使用し、effcdf6ae5eb2fa2d27416d5f184df9c259a7c79が期待値です。このツールはそのタグを返します。
OAuth 1.0a署名はどう作成しますか?
署名ベース文字列をメッセージとして使い、コンシューマーシークレットとトークンシークレットをアンパサンドで連結したものをキーとして使います。Base64形式の出力を選び、結果をAuthorizationヘッダー用にパーセントエンコードしてください。
TOTPはHMAC-SHA1を使いますか?
はい。ほとんどの認証アプリは、Base32からデコードした秘密鍵を使い、8バイトの時間カウンターに対してHMAC-SHA1を計算します。キーとカウンターはバイナリデータのため、このテキストベースのツールではTOTPコードを直接再現できません。
キーとメッセージはどのようにエンコードされますか?
どちらも入力されたとおりにUTF-8バイトへ変換されます。見えない空白、異なる改行コード、またはhex形式やBase64形式からデコードする必要があるキーは、結果が一致しない主な原因です。
キーは結果に含まれますか?
いいえ。レスポンスにはタグと秘密情報ではないオプションのみが含まれます。キーはログにも保存にも残りません。
どの出力形式を選べばよいですか?
相手側に40文字の小文字文字列が表示される場合はhex形式を、末尾が=の28文字の場合はBase64形式を使います。どちらも同じ20バイトを表します。
空のキーを使えますか?
はい。HMACは空のキーを受け付け、このツールでも計算できます。空のキーでは保護されないため、テストベクトルや他のツールとの比較にのみ使用してください。
メッセージの長さに上限はありますか?
1回のリクエストで、メッセージとキーを合わせて最大5 MiBのテキストを使用できます。タグはすぐに計算され、どちらの入力も保存されません。