Android Cipher шифрует / дешифрует

используя шифр для шифрования и дешифрования сообщений:

public String encrypt(String string) throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException {
  cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
  byte[] stringBytes = string.getBytes("UTF-8");
  byte[] encryptedBytes = cipher.doFinal(stringBytes);
  return android.util.Base64.encodeToString(encryptedBytes, android.util.Base64.DEFAULT);
}

public String decrypt(String string) throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException {
  cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
  byte[] stringBytes = android.util.Base64.decode(string.getBytes(), android.util.Base64.DEFAULT);
  byte[] decryptedBytes = cipher.doFinal(stringBytes);
  return new String(decryptedBytes,"UTF-8");
}

По какой-то причине, хотя яИспользуя Base64 для кодирования и декодирования строки, я все еще получаю эту ошибку:

javax.crypto.IllegalBlockSizeException: последний блок не завершен в расшифровке

Что я делаю неправильно?

Редактировать:

Это мой JSONObject - яя пытаюсь расшифровать «м»:

{"m":"Cu7FR2be0E6ZP2BrZaLU2ZWQSfycNg0-fPibphTIZno\r\n"}

Странно то, что ошибка появляется только в Android. Мой сервер написан на Java, и яЯ использую кодировщик Apache Base64, и он отлично работает.

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

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