Wenn Sie Ihren privaten Schlüssel als RSAPrivateCrtKey haben Objekt, können Sie den öffentlichen Exponenten sowie modulous bekommen.
Dann könnten Sie den öffentlichen Schlüssel wie folgt erstellen:
%Vor% Wie andere bemerkt haben, wenn Sie RSA CRT KEY
haben, können Sie den öffentlichen Schlüssel daraus extrahieren. Es ist jedoch tatsächlich nicht möglich, einen öffentlichen Schlüssel von einem reinen privaten Schlüssel abzurufen.
Der Grund dafür ist einfach: Beim Erzeugen von RSA-Schlüsseln gibt es eigentlich keinen Unterschied zwischen dem privaten und dem öffentlichen Schlüssel. Einer ist gewählt, um privat zu sein, der verbleibende ist dann öffentlich.
Wenn Sie also den öffentlichen Schlüssel aus einem reinen privaten Schlüssel berechnen könnten, könnten Sie mit Definition den privaten Schlüssel aus dem öffentlichen Schlüssel berechnen ...
Wenn Sie beide haben, können Sie leicht testen, ob sie übereinstimmen:
%Vor% Wenn Sie ein Objekt vom Typ RSAPrivateKey
haben, müssen Sie zwei Dinge tun:
privateKey.getModulus()
65537
. Nachdem Sie den Modul und den öffentlichen Exponenten erhalten haben, können Sie der Antwort von PeteyB folgen.
AFAIK Sie können den anderen Schlüssel eines RSA-Schlüsselpaares nicht ableiten, wenn Sie einen Schlüssel erhalten. Das würde RSA brechen.
Um ein Paar zu testen, verschlüsseln Sie einfach etwas mit einem Schlüssel und entschlüsseln Sie es mit dem anderen, um zu sehen, ob Sie das ursprüngliche Ergebnis zurückbekommen.
Tags und Links java security cryptography rsa