php openssl使用aes256加密数据并使用sha256散列传递帮助!

时间:2010-07-29 17:22:27

标签: php openssl

openssl只接受sha256哈希密码的一半 $encryptedkey = openssl_encrypt ($data, 'AES256', "$sha256", $raw_output = false);
哈希看起来像这样:a0461cea77b9942addee32b2265b32ebcf150426e2490810938ab47206fd320b
它只接受32个字符:a0461cea77b9942addee32b2265b32eb
我怎样才能解决这个问题?谢谢!

编辑:示例:当解密数据时,如果哈希在32个字符后没有马赫,它仍然会解密它,即使它是错误的

a0461cea77b9942addee32b2265b32ebcf150426e2490810938ab47206fd320b
a0461cea77b9942addee32b2265b32ebcf150426e24808019485b43406df3a9b

他们不应该工作?

1 个答案:

答案 0 :(得分:0)

我猜你应该传递原始数据,而不是它的十六进制表示。我这样说是因为32 * 8 = 256,因此通过读取32个字符,该函数实际上是读取256位。

尝试传递pack("H*", $sha256)而不是$sha256