KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
KeyPair kp = kpg.genKeyPair();
Key publicKey = kp.getPublic();
Key privateKey = kp.getPrivate();
Ich möchte nur den öffentlichen Schlüssel aus einer byte[]
erstellen.Serialisieren und Deserialisieren eines öffentlichen RSA-Schlüssels
Ich habe versucht, dies als Experiment:
publicKey = new SecretKeySpec(publicKey.getEncoded(), publicKey.getAlgorithm());
Aber Entschlüsselung dass Schlüssel dann fehl.
Ich habe auch versucht, den Schlüssel mit ObjectOutputStream
serialisieren, aber Serialisierung schlägt fehl.
java.io.NotSerializableException: org.apache.harmony.xnet.provider.jsse.OpenSSLKey
Ich las here, dass ich nicht SecretKeySpec
mit RSA verwenden können.
Wenn Sie also von einem SecretKey und nicht von einem RSA- oder DSA-Schlüssel sprechen, müssen Sie keine Verdrehungen mit KeyGenerator oder ähnlichem durchführen.
Wer weiß, wie man diese Verrenkungen durchführt oder wie man das macht.
Für RSA gibt es [RSAPrivateKeySpec] (https://docs.oracle.com/javase/7/docs/api/java/security/spec/RSAPrivateKeySpec.html) – tuxayo
@tuxayo Ja, das ist in einer Antwort unten bereits . – weston
Wo?Ich sehe nur Erwähnungen von PKCS8EncodedKeySpec. Wie auch immer ich konnte nicht RSAPrivateKeySpec arbeiten und endete mit PKCS8EncodedKeySpec. Soll ich meinen ersten Kommentar löschen, der irreführend sein kann? – tuxayo