java.lang.IllegalArgumentException: неверный base-64 при расшифровке строки

Я пытаюсь зашифровать строку с помощью KeyStore и использовал этот пост в качестве ссылки.

Замена KeyPairGeneratorSpec на KeyGenParameterSpec.Builder эквиваленты - Сбой операции хранилища ключей

тем не менее, я продолжаю получать эту «плохую базу-64», когда я дешифрую строку. Я не понимаю, как именно это исправить. Я понимаю, что зашифрованная строка содержит символы, которые расшифровщик не знает. Но я не понимаю, как исправить.

Я видел такие посты, но не сильно помог, так как в ответах нет кода.

java.lang.IllegalArgumentException: плохой base-64

Это фрагмент моего тестового кода, может кто-нибудь показать мне, как я расшифровал свою строку?

Cipher inCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding", "AndroidOpenSSL");
inCipher.init(Cipher.ENCRYPT_MODE, publicKey);

Cipher outCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding", "AndroidOpenSSL");
outCipher.init(Cipher.DECRYPT_MODE, privateKey);

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
CipherOutputStream cipherOutputStream = new CipherOutputStream(
        outputStream, inCipher);
cipherOutputStream.write(plainText.getBytes("UTF-8"));
cipherOutputStream.close();

String ecryptedText = outputStream.toString();
Log.d(TAG, "Encrypt = " + ecryptedText);

String cipherText = ecryptedText;
CipherInputStream cipherInputStream = new CipherInputStream(
        new ByteArrayInputStream(Base64.decode(cipherText, Base64.DEFAULT)), outCipher);
ArrayList<Byte> values = new ArrayList<>();
int nextByte;
while ((nextByte = cipherInputStream.read()) != -1) {
    values.add((byte)nextByte);
}

byte[] bytes = new byte[values.size()];
for(int i = 0; i < bytes.length; i++) {
    bytes[i] = values.get(i).byteValue();
}

String finalText = new String(bytes, 0, bytes.length, "UTF-8");
Log.d(TAG, "Decrypt = " + ecryptedText);

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

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