无法解码返回null的解密字符串

时间:2016-05-28 14:06:00

标签: php variables post encryption

使用私钥解密字符串后,使用echo返回值。但是当我尝试base64_decode返回null时。 我需要base64_decode的值。

openssl_private_decrypt(base64_decode($_POST['data']), $data, $privateKey, OPENSSL_NO_PADDING);

echo $data; // Returning Value --> k/HgB3uQZ1klyeHlJ2jhcG5fSOy+GowIF4bich195ll7zNF9sQbgg/1MkiUpk4ScFlT2e0XIwXzANGgrNi2yEg==
echo base64_decode($data); // returning null

2 个答案:

答案 0 :(得分:1)

Base64解码字符串:

  

K / HgB3uQZ1klyeHlJ2jhcG5fSOy + GowIF4bich195ll7zNF9sQbgg / 1MkiUpk4ScFlT2e0XIwXzANGgrNi2yEg ==

解码后的Base64,它是二进制数据而不是字符串:

  

93F1E0077B90675925C9E1E52768E1706E5F48ECBE1A8C081786E2721D7DE6597BCCD17DB106E083FD4C92252993849C1654F67B45C8C17CC034682B362DB212

一般情况下,二进制数据不能用可打印字符表示,在大多数情况下不能用任何字符集表示。

答案 1 :(得分:0)

您的字符串可能包含换行符' \ n'或者其他一些在base64中无法解码的字符,请尝试使用以下方法删除换行符:

str_replace(array("\r", "\n"), '', $data);

(资料来源:How to remove line breaks (no characters!) from the string?