RSA-Entschlüsselung mit einem öffentlichen Schlüssel

Ich habe einige Entschlüsselungsprobleme in meinem Android-Projekt.

Ich bekomme einen String mit einem privaten Schlüssel signiert und muss ihn mit einem öffentlichen Schlüssel verifizieren (entschlüsseln). Ich möchte genau das gleiche Ergebnis erhalten, als ob ich eine PHP-Funktion verwenden würde - openssl_public_decrypt (http://php.net/manual/pl/function.openssl-public-decrypt.php )

Ich muss dies in meinem Java-Projekt tun, damit ich Java-Bibliotheken verwenden kann (z. B. BouncyCastle oder etwas anderes, irgendwelche Empfehlungen?)

Irgendwelche Ideen, wie man das löst?

Ok, hier ist mein Code. Ich bekomme den öffentlichen Schlüssel so

<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>

Und ich bekomme immer den öffentlichen Schlüssel ohne Probleme.

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

Und als Ergebnis (nach der Konvertierung von Bytes in Zeichenfolge) bekomme ich022c06571c6a263b389fcd93159cb311abb880bddf51b7c916dd1ae...

wo PHP-Funktionen zurückgibtsd8dsa348acvcx87|00454|OK|15000|CDE und das ist eine korrekte Ausgabe.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage