Heim >Java >javaLernprogramm >Wie lade ich einen privaten RSA-Schlüssel aus einer Datei in Java zur XML-Signaturüberprüfung?
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!