【问题标题】:Unable to decode decrypted string returning null无法解码返回 null 的解密字符串
【发布时间】:2016-09-26 18:22:48
【问题描述】:

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

【问题讨论】:

标签: php variables post encryption


【解决方案1】:

Base64解码字符串:

k/HgB3uQZ1klyeHlJ2jhcG5fSOy+GowIF4bich195ll7zNF9sQbgg/1MkiUpk4ScFlT2e0XIwXzANGgrNi2yEg==

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

93F1E0077B90675925C9E1E52768E1706E5F48ECBE1A8C081786E2721D7DE6597BCCD17DB106E083FD4C92252993849C1654F67B45C8C17CC034682B362DB212

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多