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

Habe ich einige Entschlüsselung Probleme in mein Android-Projekt.

Ich bin immer ein string, unterzeichnet mit einem privaten Schlüssel und ich haben zu überprüfen(decrypt) mit einem öffentlichen Schlüssel.
Ich würde gerne genau das gleiche Ergebnis als wenn ich über eine PHP-Funktion - openssl_public_decrypt ( http://php.net/manual/pl/function.openssl-public-decrypt.php )

Ich habe dazu in meinem Java-Projekt, so kann ich mit Java-libs (e.g BouncyCastle, oder etwas anderes, irgendwelche Empfehlungen? )

Irgendwelche Ideen wie man dieses Problem lösen?

Ok, hier ist mein code.
Ich bin immer der öffentliche Schlüssel, wie diese

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

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

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

Sowie als ein Ergebnis(nach Umwandlung von bytes in string) bekomme ich 022c06571c6a263b389fcd93159cb311abb880bddf51b7c916dd1ae...

wo php-Funktionen zurück
sd8dsa348acvcx87|00454|OK|15000|CDE - und das ist eine korrekte Ausgabe.

In public-key-Kryptographie: Sie signieren und entschlüsseln/dechiffrieren mit einem privaten Schlüssel; überprüfen Sie (eine Unterschrift) und zu verschlüsseln/encipher unter Verwendung eines öffentlichen Schlüssels. Welches sind Sie versucht, zu tun?
Wie ich schon sagte, ich versuche, Daten zu entschlüsseln mit public key
Sie nicht entschlüsseln von Daten mit einem öffentlichen Schlüssel, es macht keinen Sinn (trotz der schlechten Namensgebung Wahl von PHP). "ich bin immer ein string verschlüsselt mit einem privaten Schlüssel": das macht wirklich keinen Sinn. Es ist signiert am besten. Zugegeben, mit RSA es wird mehr oder weniger die gleichen Operationen (aber das wäre nicht der Fall für DSA). Das problem ist, dass die Unterzeichnung der Meldung wird mit ziemlicher Sicherheit an einen hash, so dass immer die original-Nachricht ist unmöglich.
Ok, also lassen Sie uns davon ausgehen, dass die string-signiert ist, wie kann ich dies überprüfen ?
Wissen Sie mehr über die Signatur? Welcher hash-Algorithmus verwendet wurde, zum Beispiel RSAwithSHA1?

InformationsquelleAutor Mike | 2012-04-26

Schreibe einen Kommentar