Rumah  >  Artikel  >  Java  >  Bagaimana untuk Memuatkan Kunci Peribadi RSA dari Fail dalam Format PKCS8?

Bagaimana untuk Memuatkan Kunci Peribadi RSA dari Fail dalam Format PKCS8?

Susan Sarandon
Susan Sarandonasal
2024-10-25 03:37:02612semak imbas

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

Cara Memuatkan Kunci Peribadi RSA Dari Fail Menggunakan Penukaran Format PKCS8

Anda boleh menghadapi ralat semasa cuba menandatangani dokumen XML menggunakan RSA kunci persendirian yang tidak dalam format PKCS8. Untuk menyelesaikan isu ini, ikut langkah berikut:

  1. Tukar Kunci Peribadi kepada Format PKCS8: Gunakan utiliti OpenSSL untuk menukar kunci peribadi yang dikodkan PEM sedia ada kepada format PKCS8 DER. Jalankan arahan berikut:
openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file  -nocrypt > pkcs8_key
  1. Muatkan Kunci PKCS8 dalam Java:

    a. Cipta bait[] untuk memegang kunci peribadi yang dikodkan PKCS8:

    <code class="java">byte[] pkcs8Key = Files.readAllBytes(Path.of("PKCS8_key"));</code>

    b. Segerakan KeyFactory untuk RSA:

    <code class="java">KeyFactory keyFactory = KeyFactory.getInstance("RSA");</code>

    c. Hasilkan kunci persendirian daripada data kunci berkod PKCS8:

    <code class="java">PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(pkcs8Key);
    RSAPrivateKey privateKey = (RSAPrivateKey) keyFactory.generatePrivate(keySpec);</code>

Dengan mengikuti langkah ini, anda boleh berjaya memuatkan kunci persendirian RSA dalam format PKCS8 dan menggunakannya untuk menandatangani XML anda dokumen. Ambil perhatian bahawa arahan yang digunakan untuk menukar kunci persendirian hanya tersedia dalam OpenSSL versi 1.0.2 dan lebih baru.

Atas ialah kandungan terperinci Bagaimana untuk Memuatkan Kunci Peribadi RSA dari Fail dalam Format PKCS8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn