Cara Memuatkan Kunci Peribadi RSA daripada Fail
Apabila bekerja dengan kunci persendirian RSA di Java, selalunya perlu memuatkannya daripada fail. Ini boleh dilakukan menggunakan pakej java.security. Walau bagaimanapun, kadangkala ralat boleh berlaku semasa proses ini.
Satu ralat biasa ialah:
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format
Ini biasanya menunjukkan bahawa fail kunci persendirian tidak berada dalam format yang betul. Kunci persendirian mestilah dalam format PKCS8.
Untuk menukar kunci peribadi anda kepada format PKCS8, anda boleh menggunakan arahan berikut:
openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file -nocrypt > pkcs8_key
Selepas menjalankan arahan ini, kunci peribadi yang ditukar akan disimpan dalam fail pkcs8_key. Anda kemudiannya boleh memuatkan fail ini ke dalam program Java anda menggunakan kod berikut:
<code class="java">import java.io.FileInputStream; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.security.InvalidKeySpecException; import java.security.KeyFactory; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; public class LoadRsaPrivateKeyFromFile { public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException { // Read the converted private key file byte[] keyBytes = Files.readAllBytes(Paths.get("pkcs8_key")); // Create a PKCS8EncodedKeySpec to wrap the key bytes PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes); // Create a KeyFactory to generate the private key KeyFactory factory = KeyFactory.getInstance("RSA"); // Generate the private key PrivateKey privateKey = factory.generatePrivate(spec); // Use the private key to sign a message // ... } }</code>
Atas ialah kandungan terperinci Bagaimana untuk Memuatkan Kunci Peribadi RSA daripada Fail dan Mengelakkan \'InvalidKeySpecException\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!