openssl只接受sha256哈希密码的一半
$encryptedkey = openssl_encrypt ($data, 'AES256', "$sha256", $raw_output = false);
哈希看起来像这样:a0461cea77b9942addee32b2265b32ebcf150426e2490810938ab47206fd320b
它只接受32个字符:a0461cea77b9942addee32b2265b32eb
我怎样才能解决这个问题?谢谢!
编辑:示例:当解密数据时,如果哈希在32个字符后没有马赫,它仍然会解密它,即使它是错误的
a0461cea77b9942addee32b2265b32ebcf150426e2490810938ab47206fd320b
a0461cea77b9942addee32b2265b32ebcf150426e24808019485b43406df3a9b
他们不应该工作?
答案 0 :(得分:0)
我猜你应该传递原始数据,而不是它的十六进制表示。我这样说是因为32 * 8 = 256,因此通过读取32个字符,该函数实际上是读取256位。
尝试传递pack("H*", $sha256)
而不是$sha256
。