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!