ホームページ  >  記事  >  Java  >  SAML署名のためにJavaのファイルからRSA秘密キーをロードするにはどうすればよいですか?

SAML署名のためにJavaのファイルからRSA秘密キーをロードするにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-25 06:45:28781ブラウズ

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

ファイルから RSA 秘密キーをロードする方法

RSA 秘密キーを使用して SAML 1.1 アサーション コンシューマ サービス メッセージに署名しようとすると、次のエラーが発生する可能性があります。

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

このエラーは、秘密キーの形式が正しくないことを示します。 RSA 秘密キーは通常、PEM 形式で保存されますが、Java では PKCS8 形式である必要があります。

RSA 秘密キーを PEM から PKCS8 形式に変換するには、次のコマンドを使用できます:

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

秘密キーを PKCS8 形式に変換したら、次のコードを使用して Java にロードできます:

<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>

これで、privKey を使用して SAML メッセージに署名できるようになります。

以上がSAML署名のためにJavaのファイルからRSA秘密キーをロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。