Расшифровка 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);
Результат дешифрования не соответствует моей исходной строке.
Я что-то упустил?