HMACを生成する方法
テキストと秘密文字列を入力し、利用可能なアルゴリズム名で実行すると、条件に応じてHMACを生成できます。アルゴリズム名を省略した場合はSHA-256が選択されます。
入力内容と既定値を把握する
HMACは、指定したテキストと秘密文字列をもとに認証用の値を作るときに使います。入力欄ではテキスト、秘密文字列、アルゴリズム名をそれぞれ任意で指定できますが、空欄の扱いは項目ごとに異なります。アルゴリズム名を省略した場合はSHA-256が選択されるため、特に指定がなければその既定値を利用できます。
計算した値を入力内容の確認に使う場合は、対象のテキストと秘密文字列を意図したとおりにそろえることが大切です。テキストが空のままだと、成功結果は返っても計算済みのHMAC値は得られません。秘密文字列が空でも別の扱いになるため、試した条件を記録して結果を読み取ってください。
HMACを生成する操作手順
- HMACの対象にするテキストを入力します。空欄のまま実行することもできますが、その場合は通常のHMAC計算を確認する手順になりません。
- 秘密文字列を入力します。テキストが空でない状態でこの欄を空にすると、入力した空文字列がそのまま使われるのではなく、ツール内の代替の秘密値が使われます。再現性を確認したいときは、秘密文字列を明示してください。
- アルゴリズム名を入力または選択します。空欄ならSHA-256が使われ、名前を指定したときは利用可能なハッシュ実装に対応する名前である必要があります。
- 生成を実行します。テキストが空でなく、指定したアルゴリズム名が利用可能なら、生成されたHMACを含む成功結果が返ります。
- 結果を確認し、テキスト、秘密文字列、アルゴリズム名の条件を記録した内容と照らし合わせます。値が想定と異なるときは、まず入力の空欄とアルゴリズム名を見直してください。
返された値を読み分ける
成功結果に生成されたHMACが含まれているなら、テキストが空でなく、選択したアルゴリズム名が利用可能な条件で処理されたと判断できます。結果を比較するときは、テキストの文字、空白、秘密文字列、アルゴリズム名を同じ条件にそろえてください。
テキストを空にした場合は、処理の状態が成功でもHMAC値の欄は空になります。これは計算された値を表すものではないため、通常の生成結果として比較しないでください。秘密文字列を空にした場合は、テキストが空でなければ内部の代替の秘密値が選ばれます。
指定したアルゴリズム名が利用可能な実装に解決されない場合、その入力が構造化された失敗として変換されるとは限りません。結果が得られないときは、名前の表記を確認し、利用可能なアルゴリズム名で再度実行します。
使用例
注文番号の文字列について、既定のSHA-256を使った生成結果の形を確認します。
テキストに「注文番号:JP-2048」、秘密文字列に「sample-secret」を入力し、アルゴリズム名を空欄のまま実行します。
テキストが空でなく、アルゴリズム名を省略した場合は、SHA-256で生成されたHMACを含む成功結果になります。
制限事項
- 解決できないアルゴリズム名は構造化された失敗として扱われるとは限らず、空のテキストから計算済みのHMAC値を得ることもできません。
よくある間違い
- 利用可能な実装に解決できないアルゴリズム名を指定すると、生成結果を確認できないことがあります。アルゴリズム名を見直し、利用可能な名前を指定して再実行してください。
よくある質問
テキストを空にしてもHMACは生成できますか?
テキストが空でも成功結果は返りますが、HMAC値は空で、HMACの計算は実行されません。
秘密文字列を入力しなくても使えますか?
テキストが空でない場合は、秘密文字列を省略しても内部の代替の秘密値を使って処理されます。入力条件を明確にしたい場合は、秘密文字列を指定してください。
アルゴリズムは自由に指定できますか?
利用可能なハッシュ実装に解決するアルゴリズム名を指定した場合に生成されます。省略時はSHA-256ですが、解決できない名前が構造化された失敗に変換されるとは限りません。