Maison  >  Article  >  Java  >  Comment charger une clé privée RSA à partir d'un fichier en Java pour la signature SAML ?

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

DDD
DDDoriginal
2024-10-25 06:45:28781parcourir

How to Load an RSA Private Key from File in Java for SAML Signing?

Comment charger la clé privée RSA à partir d'un fichier

Lors de la tentative de signature d'un message du service consommateur d'assertion SAML 1.1 à l'aide d'une clé privée RSA, l'erreur suivante peut se produire :

<code class="java">java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format</code>

Cette erreur indique que la clé privée n'est pas au bon format. Les clés privées RSA sont généralement stockées au format PEM, mais Java exige qu'elles soient au format PKCS8.

Pour convertir une clé privée RSA du format PEM au format PKCS8, vous pouvez utiliser la commande suivante :

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

Une fois que vous avez converti la clé privée au format PKCS8, vous pouvez la charger en Java en utilisant le code suivant :

<code class="java">byte[] privKeyBytes = Files.readAllBytes(Paths.get("pkcs8_key"));
KeySpec ks = new PKCS8EncodedKeySpec(privKeyBytes);
RSAPrivateKey privKey = (RSAPrivateKey) KeyFactory.getInstance("RSA").generatePrivate(ks);</code>

Vous pouvez maintenant utiliser la privKey pour signer le message SAML.

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