Maison  >  Article  >  Java  >  Comment charger une clé privée RSA à partir d’un fichier au format PKCS8 ?

Comment charger une clé privée RSA à partir d’un fichier au format PKCS8 ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-25 03:37:02612parcourir

How to Load an RSA Private Key from File in PKCS8 Format?

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 :

  1. Convertir la clé privée au format PKCS8 : utilisez l'utilitaire OpenSSL pour convertir la clé privée codée PEM existante au format PKCS8 DER. Exécutez la commande suivante :
openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file  -nocrypt > pkcs8_key
  1. 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!

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