Heim  >  Artikel  >  Java  >  Wie lade ich einen privaten RSA-Schlüssel aus einer Datei in Java zur XML-Signaturüberprüfung?

Wie lade ich einen privaten RSA-Schlüssel aus einer Datei in Java zur XML-Signaturüberprüfung?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-25 09:42:28737Durchsuche

How to Load an RSA Private Key from a File in Java for XML Signature Verification?

Laden des privaten RSA-Schlüssels aus einer Datei in Java

Bei der Verarbeitung sicherheitsrelevanter Daten ist es von entscheidender Bedeutung, die Authentizität digitaler Daten überprüfen zu können Unterschriften. In diesem Fall besteht die Aufgabe darin, einen privaten RSA-Schlüssel aus einer Datei zu laden, um eine XML-Signatur zu überprüfen.

Um dies zu erreichen, befolgen Sie diese Schritte:

1. Lesen Sie die private Schlüsseldatei als Bytes:

<code class="java">String keyPath = "mykey.pem";
File privKeyFile = new File(keyPath);
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(privKeyFile));
byte[] privKeyBytes = new byte[(int) privKeyFile.length()];
bis.read(privKeyBytes);
bis.close();</code>

2. Konvertieren Sie den privaten Schlüssel in das PKCS8-Format (optional)

Wenn Ihr privater Schlüssel nicht bereits im PKCS8-Format vorliegt, konvertieren Sie ihn mit diesem Befehl:

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

Lesen Sie dann den konvertierten Schlüssel mit folgendem Code:

<code class="java">byte[] convertedPrivKeyBytes = Files.readAllBytes(Paths.get("pkcs8_key"));</code>

3. Generieren Sie den privaten RSA-Schlüssel:

<code class="java">KeyFactory keyFactory = KeyFactory.getInstance("RSA");
KeySpec ks = new PKCS8EncodedKeySpec(convertedPrivKeyBytes);
RSAPrivateKey privKey = (RSAPrivateKey) keyFactory.generatePrivate(ks);</code>

4. Überprüfen Sie die digitale Signatur:

Sobald Sie über den privaten RSA-Schlüssel verfügen, können Sie ihn verwenden, um die Signatur des SAMLResponse-Objekts zu überprüfen:

<code class="java">samlResponse.sign(Signature.getInstance("SHA1withRSA").toString(), privKey, certs);</code>

Wenn Sie diese Schritte befolgen, können Sie kann erfolgreich einen privaten RSA-Schlüssel aus einer Datei laden und ihn zur Überprüfung digitaler Signaturen verwenden.

Das obige ist der detaillierte Inhalt vonWie lade ich einen privaten RSA-Schlüssel aus einer Datei in Java zur XML-Signaturüberprüfung?. 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