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

PKCS8 形式のファイルから RSA 秘密キーをロードするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-25 03:37:02612ブラウズ

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

PKCS8 形式変換を使用してファイルから RSA 秘密キーをロードする方法

RSA を使用して XML ドキュメントに署名しようとすると、エラーが発生する場合がありますPKCS8 形式ではない秘密キー。この問題を解決するには、次の手順に従います。

  1. 秘密キーを PKCS8 形式に変換する: OpenSSL ユーティリティを使用して、既存の PEM エンコードされた秘密キーを PKCS8 DER 形式に変換します。次のコマンドを実行します:
openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file  -nocrypt > pkcs8_key
  1. 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 サイトの他の関連記事を参照してください。

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