Descifrado RSA con una clave pública

Tengo algunos problemas de descifrado en mi proyecto de Android.

Obtengo una cadena firmada con una clave privada y tengo que verificarla (descifrarla) con una clave pública. Me gustaría obtener exactamente el mismo resultado que si estuviera usando una función PHP: openssl_public_decrypt (http://php.net/manual/pl/function.openssl-public-decrypt.php )

Tengo que hacer esto en mi proyecto de Java, por lo que puedo usar las librerías de Java (por ejemplo, BouncyCastle, o alguna otra cosa, ¿alguna recomendación?)

¿Alguna idea de como resolver esto?

Ok, aquí está mi código. Estoy obteniendo la clave pública como esta

<code>PEMReader reader = new PEMReader(new InputStreamReader(ctx
                .getAssets().open("pubkey.pem")));
        Object obj;
        while ((obj = reader.readObject()) != null) {
             if (obj instanceof RSAPublicKey) {
                pubKey = (RSAPublicKey) obj;
                return pubKey;
            }
        }
</code>

Y siempre obtengo la clave pública sin ningún problema.

<code>Cipher c = Cipher.getInstance("RSA/NONE/NoPadding", "SC");
c.init(Cipher.DECRYPT_MODE, pubKey);
byte[] result = c.doFinal(data_to_decrypt.getBytes());
</code>

Y como resultado (después de convertir bytes en cadena) obtengo022c06571c6a263b389fcd93159cb311abb880bddf51b7c916dd1ae...

donde devuelve funciones phpsd8dsa348acvcx87|00454|OK|15000|CDE y esta es una salida correcta.

Respuestas a la pregunta(1)

Su respuesta a la pregunta