Heim >Java >javaLernprogramm >Wie lade ich einen privaten RSA-Schlüssel aus einer Datei in Java für die SAML-Signierung?

Wie lade ich einen privaten RSA-Schlüssel aus einer Datei in Java für die SAML-Signierung?

DDD
DDDOriginal
2024-10-25 06:45:28876Durchsuche

How to Load an RSA Private Key from File in Java for SAML Signing?

So laden Sie einen privaten RSA-Schlüssel aus einer Datei

Beim Versuch, eine SAML 1.1 Assertion Consumer Service-Nachricht mit einem privaten RSA-Schlüssel zu signieren, kann der folgende Fehler auftreten:

<code class="java">java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format</code>

Dieser Fehler weist darauf hin, dass der private Schlüssel nicht das richtige Format hat. Private RSA-Schlüssel werden normalerweise im PEM-Format gespeichert, Java erfordert jedoch, dass sie im PKCS8-Format vorliegen.

Um einen privaten RSA-Schlüssel vom PEM- in das PKCS8-Format zu konvertieren, können Sie den folgenden Befehl verwenden:

<code class="bash">openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file  -nocrypt > pkcs8_key</code>

Sobald Sie den privaten Schlüssel in das PKCS8-Format konvertiert haben, können Sie ihn mit dem folgenden Code in Java laden:

<code class="java">byte[] privKeyBytes = Files.readAllBytes(Paths.get("pkcs8_key"));
KeySpec ks = new PKCS8EncodedKeySpec(privKeyBytes);
RSAPrivateKey privKey = (RSAPrivateKey) KeyFactory.getInstance("RSA").generatePrivate(ks);</code>

Sie können jetzt den privKey verwenden, um die SAML-Nachricht zu signieren.

Das obige ist der detaillierte Inhalt vonWie lade ich einen privaten RSA-Schlüssel aus einer Datei in Java für die SAML-Signierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn