Valor de basura después de descifrar cadena encriptada Base64 con RSA java

En mi aplicación de Android estoy implementando el desencryption de encryption RSA.

Tenemos esta aplicación para iOS y para Android.

Cada vez que ios cifra el post con mi key pública, envía el text encriptado en base64 y en el lado de Android lo descifro con mi key privada.

El problema es que cada vez que descifro los datos, da un post encriptado rodeado de relleno de basura

como se muestra a continuación:

K N t X 08 I ii z < C , r | aKj: N ^ J c U X ' r 6Y k, o D ^ ) F [
tH ^ f s test updated pub key

"testing actualizar la key del pub" es el post.

public static String RSADecrypt(final String result, Context context, PrivateKey key) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, InvalidKeySpecException { Log.d(TAG, "Decryption of " + result); String decrypted = ""; try { byte[] b = Base64.decode(result, Base64.DEFAULT); Cipher cipher1; cipher1 = Cipher.getInstance(ALGO); cipher1.init(Cipher.DECRYPT_MODE, key); byte[] decryptedBytes = cipher1.doFinal(b); decrypted = new String(decryptedBytes,"US-ASCII"); Log.d(TAG, "Decrypted text " + decrypted); Toast.makeText(context, decrypted, Toast.LENGTH_LONG).show();; } catch (Exception e) { e.printStackTrace(); Log.d(TAG, "Exception in decryption"); } return decrypted; } 

No puedo entender dónde está el problema, en el lado de IOS en el lado de Android o en la conversión de bytes a cadena después de desencryption. Ayuda de PLZ

Pruebe y use "RSA/ECB/PKCS1Padding" lugar de "RSA/ECB/NoPadding" o similar por el valor de ALGO . Los caracteres de aspecto aleatorio circundante son en realidad bytes de relleno aleatorios. El relleno es una parte integral del encryption RSA y no debe omitirse.

Tenga en count que KeyPairGenerator todavía debe usar "RSA" , el generador no se preocupa por los modos de encriptación y / o modos de relleno.