HMAC-MD5エンコードされたパラメーターをフォームに渡していますが、ベンダーはそれを無効として返しています。ただし、文字の大文字の使用を除いて、ハッシュジェネレーターが提供するものと一致します。これを回避するために私が行ったのは、lcaseコマンドを使用することでした。これで後でトラブルが発生するのではないかと思います。 Coldfusionは大文字でハッシュされた文字列を生成します。ベンダーは常に小文字を使用しているようです。それは常にどちらか一方ですか、それとも混合されますか?
他のすべてのハッシュ関数はバイナリ出力を生成するため、MD5の場合、MD5は16バイトです。
これらのバイトは処理が難しいため、文字列に対してencodedになります。 MD5の場合、それらは通常32桁の小文字の16進数にエンコードされるため、各バイトは2文字で表されます。
ターゲットシステムが大文字または小文字のエンコーディングを受け入れるかどうか、またはその両方がシステム次第であるかどうかは、ハッシュ関数とは無関係です。どちらも同じMD5ハッシュの異なる表現です。したがって、質問に答えるには、ターゲットシステムが必要とするように出力をフォーマットします。
16進文字列は、0
-9
とa
-f
、A
-F
の範囲なので、大文字と小文字の両方のバージョンを想定する必要があります。
2つの非常に意見の高いシステム間のインターフェースを作成しようとして本当に行き詰まっている場合は、要件に応じて大文字または小文字を強制します。