Мой сценарий использует openssl_private_decrypt()
для расшифровки строки, зашифрованной с помощью RSA в другой программе. В настоящее время он пишет в файл. Но когда я пытаюсь открыть его в текстовом редакторе, он говорит, что не может обнаружить кодировку. Если я попытаюсь повторить это, ничего не появляется. Если вывести его длину, я получу 256
вместо правильного 3
.
Я знаю, что расшифровка выполнена правильно, потому что использование команды терминала cat
в выходном файле дает правильные данные.
$ cat decrypted.txt
Похоже, что это проблема кодировки символов, проблема, которую я слышу, может причинить много боли в PHP. Я даже пытался utf8_encode()
. В чем может быть проблема?
Вот код:
$results = '';
openssl_private_decrypt(
base64_decode(
<<<EOS
QWlG+AZIt9GE0hw0wwcPRtUWueMLBxj3YWpa5zQBoz1ttnt7TvlxDtYWZcvaUL/qr2CJCADE2iTR
G72FhAwew2fhqlqmsxL7Nns3yegflTTMXyilVM3mPU4Cx94ylLfa+ZrqrNEepaRorNJ/js5iTq9i
avegO/kYOv4zhEsZirlk/Mj0vVv6irWo8WyZoCDC2SwfGWeSUI8F4pq4FUkRh9V/0zAUZ+3P0A7Z
SrA80dSa6U/J+poRcmE1vRLQXvM8dBtFRKmb0zfltLUBMcMhcglzAhcpemJ99OCZmUuynFRcRNkj
CkOLsO+lSHntcbmXqsKE+of78gnU3tp5hHSHIg==
EOS
),
$results,
openssl_pkey_get_private(
// load private key
),
OPENSSL_NO_PADDING
);
echo $results;