0

最初に md5 ハッシュされ、次に base64 エンコードされた特定の検証キーを必要とする支払いサイトに自分のサイトを接続しようとしています。したがって、指示pdfは、特定の入力文字列を指定した例を示しています。

input EX123123456100.00
md5(input) => 231cd7f8e0151f6e0c4a60b33752a1e7
base64_encode(md5(input)) => IxzX+0AVH24MSmCzN1Kh5w==

したがって、このサンプル入力を試すと、ハッシュに対して同じ出力が得られmd5ます。しかし、base64_encode結果は同じではありません。説明によると、base64_encodeこれを機能させるには、値を 16 進形式でエンコードする必要があります。そしてbase64_encode、私のphpスクリプトは文字列をエンコードしていると思います。そのため、pdfファイルとは異なる結果が得られます。base64_encodeでは、エンコードを16進値にするにはどうすればよいですか? または、別の値を取得している別の理由がありますか?

4

1 に答える 1

3

すでに完全に優れたASCII文字列であるものをbase64エンコードすることはあまり意味がありません。true2番目のパラメータとしてをに渡すmd5と、16進文字列ではなく生のバイナリデータが返されます。適切なサンプル値提供するBase64エンコーディング:

base64_encode(md5($key, true))

指示を誤解したか、指示が誤解を招く可能性があります。

于 2012-10-29T21:09:18.293 に答える