0

我正在尝试将我的网站连接到需要某个验证密钥的支付网站,该验证密钥首先是 md5 散列,然后是 base64 编码。所以指令pdf给出了一个给定输入字符串的例子:

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

所以当我尝试这个示例输入时,我得到了相同md5的哈希输出。但base64_encode结果不一样。说明说base64_encode需要以十六进制格式对值进行编码才能使其正常工作。而且我猜我base64_encode在我的 php 脚本中正在编码一个字符串,这就是为什么我从 pdf 文件中得到不同结果的原因。那么如何使base64_encode编码成为十六进制值?还是有其他原因我得到不同的价值?

4

1 回答 1

3

对已经是非常好的 ASCII 字符串的内容进行 base64 编码没有多大意义。如果将 atrue作为第二个参数传递给md5,它将返回原始二进制数据而不是十六进制字符串。Base64 编码您提供正确的示例值:

base64_encode(md5($key, true))

要么您误解了说明,要么说明具有误导性。

于 2012-10-29T21:09:18.293 回答