Процедуры шифрования и дешифрования PHP и JAVA

У меня есть следующая процедура PHP для шифрования моего сообщения с клиентом:

public static function encrypt($input, $key) { $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = AES::pkcs5_pad($input, $size); $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, ''); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data); return $data; } 

И следующий Java rotuine для расшифровки моего сообщения с сервером:

 public static String decrypt(String input, String key) { byte[] output = null; try { SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, skey); output = cipher.doFinal(Base64.decode(input,Base64.NO_WRAP)); } catch (Exception e) { System.out.println(e.toString()); } return new String(output); } 

Почему следующая процедура расшифровки генерирует исключение?

Java.lang.IllegalArgumentException: bad base-64

Edit: После hardcoding строки в код я получаю исключение BadPaddingException.

Мой ввод для функции дешифрования:

 wrmRa2hAoseNOev6/ascapxkLQRGX/GW3DQm3ETwBH7gJm1NetkgGFzgY4kZTE10Tv45YIcy/xoodq/GumSY5hsao1s4bkuKXZeim/IDTVr3elrqX13b81/XE5iB3iJrAqny2dQ5SsWso0lUcAZGS2Wls/lTeQiIKXEaOh7iZZ3xOtM6633iNcoiFxEnX5A0dMrdRNEOkmQ3UnQmuIGTSv0RLKuPv5r5dplGZ3N2LMMpoB0AMu3DSXFEdiD4XN49 

Возможно, вам необходимо использовать:

 Base64.decode(input,Base64.NO_WRAP|Base64.URL_SAFE) 

Также возможно, вам понадобится другая комбинация флагов.

Это также зависит от того, как вы получаете строку base64. Иногда «+» преобразуется в «пробел», если он переносится из URL-адреса или другого онлайн-источника.