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