Расшифровка Android RSA (сбой) / шифрование на стороне сервера (openssl_public_encrypt)

Я пытаюсь расшифровать строку в своем приложении для Android, используя ключи RSA, сгенерированные на моем устройстве. Шифрование выполняется php-сервисом с использованием открытого ключа rsa, предоставленного моим приложением. Моя проблема с расшифровкой, которая терпит неудачу.

Я делаю следующее:

Создание KeyPair на Android (с помощью KeyPairGenerator.getInstance ("RSA»)) -> Хорошо

Оба ключа (открытый и закрытый) сохраняются в файлы послеbase64" кодируется с помощью Base64.encode (pubKey.getEncoded ()) и так же с закрытым ключом. -> Хорошо

Когда я вызываю свой веб-сервис, я передаю свой открытый ключ (в базе 64) в переменную post -> Хорошо

Веб-служба (служба php) использует открытый ключ для шифрования короткой строки с помощью функции openssl_public_encrypt. Зашифрованная строка преобразуется в base64. -> Кажется, нормально, функция не возвращает FALSE.

Приложение извлекает результат службы и декодирует его (Base64.decode ()) -> ОК (у меня есть проверка, полученные байты совпадают с байтами, сгенерированными функцией openssl_public_encrypt ())

Последнее, что нужно для расшифровки этой строки, я делаю следующее: -> НЕ ХОРОШО

Cipher cipher = Cipher.getInstance ("RSA»);

cipher.init (Cipher.DECRYPT_MODE, privateKey);

byte [] decryptedBytes = cipher.doFinal (cryptedBytes);

String decryptedString = new String (decryptedBytes);

System.out.println (decryptedString);

Результат дешифрования не соответствует моей исходной строке.

Я что-то упустил?

Ответы на вопрос(1)

Ваш ответ на вопрос