我得到md5哈希的SAME输出,但base64_encode结果不一样

时间:2012-10-29 21:04:20

标签: php encryption base64 md5 encode

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

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

因此,当我尝试此示例输入时,我得到md5哈希的 SAME 输出。但base64_encode结果并不相同。说明说base64_encode需要以十六进制格式对值进行编码才能生效。我想我的PHP脚本中的base64_encode正在编码一个字符串,这就是为什么我从pdf文件得到不同的结果。那么如何使base64_encode编码为十六进制值?或者我有另一个原因得到不同的价值吗?

1 个答案:

答案 0 :(得分:3)

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

base64_encode(md5($key, true))

要么您误解了说明,要么误解了说明。