PKCS8 形式変換を使用してファイルから RSA 秘密キーをロードする方法
RSA を使用して XML ドキュメントに署名しようとすると、エラーが発生する場合がありますPKCS8 形式ではない秘密キー。この問題を解決するには、次の手順に従います。
openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file -nocrypt > pkcs8_key
PKCS8 キーを Java にロードします:
a。 PKCS8 でエンコードされた秘密キーを保持する byte[] を作成します:
<code class="java">byte[] pkcs8Key = Files.readAllBytes(Path.of("PKCS8_key"));</code>
b. RSA の KeyFactory をインスタンス化します:
<code class="java">KeyFactory keyFactory = KeyFactory.getInstance("RSA");</code>
c. PKCS8 でエンコードされた鍵データから秘密鍵を生成します:
<code class="java">PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(pkcs8Key); RSAPrivateKey privateKey = (RSAPrivateKey) keyFactory.generatePrivate(keySpec);</code>
次の手順に従うことで、RSA 秘密鍵を PKCS8 形式で正常にロードし、それを使用して XML に署名できます。書類。秘密キーの変換に使用されるコマンドは、OpenSSL バージョン 1.0.2 以降でのみ使用できることに注意してください。
以上がPKCS8 形式のファイルから RSA 秘密キーをロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。