Maison >Java >javaDidacticiel >Comment charger une clé privée RSA à partir d'un fichier en Java pour la vérification de la signature XML ?

Comment charger une clé privée RSA à partir d'un fichier en Java pour la vérification de la signature XML ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-25 09:42:28854parcourir

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

Chargement de la clé privée RSA à partir d'un fichier en Java

Lors du traitement de données sensibles en matière de sécurité, il est crucial de pouvoir vérifier l'authenticité des données numériques signatures. Dans ce cas, la tâche consiste à charger une clé privée RSA à partir d'un fichier pour vérifier une signature XML.

Pour y parvenir, suivez ces étapes :

1. Lire le fichier de clé privée en octets :

<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. Convertir la clé privée au format PKCS8 (facultatif)

Si votre clé privée n'est pas déjà au format PKCS8, convertissez-la à l'aide de cette commande :

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

Ensuite, lisez la clé convertie en utilisant le code suivant :

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

3. Générez la clé privée RSA :

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

4. Vérifiez la signature numérique :

Une fois que vous disposez de la clé privée RSA, vous pouvez l'utiliser pour vérifier la signature de l'objet SAMLResponse :

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

En suivant ces étapes, vous peut charger avec succès une clé privée RSA à partir d'un fichier et l'utiliser pour vérifier les signatures numériques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn