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



使用私钥解密字符串后,使用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

Base64解码字符串:

k/HgB3uQZ1klyeHlJ2jhcG5fSOy+GowIF4bich195ll7zNF9sQbgg/1MkiUpk4ScFlT2e0XIwXzANGgrNi2yEg==

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

93F1E0077B90675925C9E1E52768E1706E5F48ECBE1A8C081786E2721D7DE6597BCCD17DB106E083FD4C92252993849C1654F67B45C8C17CC034682B362DB212

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

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

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

(来源:如何从字符串中删除换行符(没有字符!)?)

最新更新