# RSA-Verschlüsselung



## goodvirus (16. Apr 2006)

Guten Tag erstmal.
Ich bin grade dabei einen Chat zu schreiben, der mit einer RSA-Verschlüsselung arbeitet(ich muss mich noch entscheiden ob ich RSA für jede Message einsetze oder nur zur schlüsselübergabe für eine Symetrische Verschlüsselung, könnt ihr ja auch was zu schreiben wenn ihr lust habt    )
Aber kommen wir zu meinem Eigentlichem Problem:
Ich erstelle mit 

```
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize( 1024 );
KeyPair keyPair = kpg.genKeyPair();
```
Meinen Privaten und Öffentlichen Schlüssel.

Nun ist meine Frage wie verschlüssel und entschlüssel ich damit einen String(beziehungsweise einen String der in Bytes umgewandelt wird)

Ich habe es per 

```
Cipher cipher = Cipher.getInstance( "RSA" );
cipher.init( Cipher.ENCRYPT_MODE, keyPair.getPublic() );
byte[] verschlüsselt = cipher.doFinal(test.getBytes());
```
Probiert aber schon in der ersten Zeile gibt er mir den Fehler aus das er keinen Provider findet der RSA unterstützt.
Ich glaube eigentlich auch, das die Chipher klasse nur für Symetrische Verschlüsselung gedacht ist.

Ich hoffe meine Problem ist nachvollziehbar. Ich brauche eine Methode womit ich daten mit dem Öffentlichen RSA-Schlüssel verschlüsseln kann und eine womit ich sie mit dem Privaten RSA-Schlüssel wieder entschlüsseln kann.
Vielen Dank schonmal im voraus.
MfG goodvirus


----------



## Spacerat (2. Jul 2009)

Nein, "Cipher" unterstützt auch RSA. siehe hier: Java Cryptography Extension
Ein RSA-Provider ist auch vorhanden, sonst würde es bereits beim erzeugen des Schlüsselpaares Probleme geben. Vllt. hilfts ja, wenn man den Provider, den man sich über "kpg.getProvider()" besorgt, an "Cipher.getInstance()" zu übergeben.
@Edit: Ist das überhaupt noch Aktuell? Hab' gar nicht auf das Erstelldatum des Threads geachtet.


----------

