2016-05-28 2 views
-1

После дешифрования строки с использованием закрытого ключа, используя значение 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

'echo $ data; echo base64_decode ($ _ POST ['data']); ' – Akam

+0

Возможный дубликат имени [Print $ \ _ POST variable вместе со значением] (http://stackoverflow.com/questions/3489387/print-post-variable-name-along -with-value) – jww

ответ

0

Ваша строка может содержать разрыв строки «\ п» или какой-либо другой символ, который не декодируемый в base64, попробуйте удалить разрывы строк с помощью:

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

(Источник: How to remove line breaks (no characters!) from the string?)

+0

Большинство декодеров Base64 игнорируют символы разрыва строки. – zaph

1

Base64 декодирования строка:

к/HgB3uQZ1klyeHlJ2jhcG5fSOy + GowIF4bich195ll7zNF9sQbgg/1MkiUpk4ScFl T2e0XIwXzANGgrNi2yEg ==

Декодированные Base64, это двоичные данные не строка:

93F1E0077B90675925C9E1E52768E1706E5F48ECBE1A8C081786E2721D7DE6597BCCD17DB106E083FD4C92252993849C1654F67B45C8C17CC034682B362DB212

В общих двоичных данных не может быть представлена ​​в печатных символов, и в большинстве случаев может не должны быть представлены в любом наборе символов.