Comment charger la clé privée RSA à partir d'un fichier à l'aide de la conversion du format PKCS8
Vous pouvez rencontrer des erreurs lorsque vous tentez de signer un document XML à l'aide d'un RSA clé privée qui n'est pas au format PKCS8. Pour résoudre ce problème, suivez ces étapes :
openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file -nocrypt > pkcs8_key
Chargez la clé PKCS8 en Java :
a. Créez un octet[] pour contenir la clé privée codée en PKCS8 :
<code class="java">byte[] pkcs8Key = Files.readAllBytes(Path.of("PKCS8_key"));</code>
b. Instancier une KeyFactory pour RSA :
<code class="java">KeyFactory keyFactory = KeyFactory.getInstance("RSA");</code>
c. Générez une clé privée à partir des données de clé codées en PKCS8 :
<code class="java">PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(pkcs8Key); RSAPrivateKey privateKey = (RSAPrivateKey) keyFactory.generatePrivate(keySpec);</code>
En suivant ces étapes, vous pouvez charger avec succès une clé privée RSA au format PKCS8 et l'utiliser pour signer votre XML. document. Notez que la commande utilisée pour convertir la clé privée n'est disponible que dans les versions OpenSSL 1.0.2 et ultérieures.
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!