Maison >Java >javaDidacticiel >Comment charger une clé privée RSA à partir d'un fichier en Java pour la signature SAML ?
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!