Я отправляю зашифрованную строку openssl с сервера с помощью PHP на iOS и наоборот, на сервере с использованием PHP мне нужно зашифровать / дешифровать строку и то же самое с iOS, все работает отлично, за исключением того, что строка, полученная из iOS, содержит дополнительные символы, после нескольких поисков i пришел к пониманию того, что шифрование RSA применяет по умолчанию дополнение PKCS1, которое, например, добавляет дополнительные символы в зашифрованную строку.
Зашифрованная строка foo получает этот результат после дешифрования.
foo¤º ¤º äØKŒCarrier+†7†ÐHÀ€ôa$aLa°aTa(aX¿€<a@aèaaTwaØwaäwa0®50‡4€B4ÀB4°†4ð†4þ;Ð}2}20¸>@¸> ¸>LGa¿
Я ожидал, что PHP позаботится об удалении этих нежелательных дополнений из строки, но, к сожалению, это не так, единственное обходное решение, о котором я могу думать, – отправить длину вдоль строки и полосы этих нежелательных символов, например расшифрованную строку будет выглядеть так после добавления длины.
3_foo¤º ¤º äØKŒCarrier+†7†ÐHÀ€ôa$aLa°aTa(aX¿€<a@aèaaTwaØwaäwa0®50‡4€B4ÀB4°†4ð†4þ;Ð}2}20¸>@¸> ¸>LGa¿
Я могу получить начальную 3_
которая является длиной строки, и удалить остальные.
Я хочу знать от вас, если это подходит для подхода, или если есть другая альтернатива, или если PHP должен делать это для меня автоматически.
Если вы хотите взглянуть на код, который я использую, здесь он находится в другом сообщении: расшифровка Openssl отображает дополнительные символы
Спасибо за ваш ответ.