Mendapatkan Kunci Peribadi RSA daripada Fail Kunci Peribadi Dikodkan PEM BASE64
Apabila cuba mengekstrak kunci peribadi daripada fail kunci peribadi yang dikodkan PEM BASE64 , anda mungkin menghadapi ralat seperti yang anda nyatakan. Ini biasanya disebabkan oleh pengendalian spesifikasi kunci yang tidak sesuai disebabkan oleh penggunaan format kunci bukan standard.
Mengatasi Ralat
Ralat yang anda hadapi ialah berkemungkinan berkaitan dengan penggunaan kaedah yang salah untuk menghuraikan kunci persendirian. Daripada bergantung pada perpustakaan pihak ketiga yang mungkin tidak mematuhi FIPS:
Kod Java yang dikemas kini menggunakan sun.security dan DerInputStream:
Berikut ialah coretan kod Java yang dikemas kini yang menggunakan matahari.keselamatan dan Kelas DerInputStream untuk menghuraikan kedua-dua format PKCS#1 dan PKCS#8 bagi kunci persendirian, sambil memastikan pematuhan FIPS:
import sun.security.util.DerInputStream; import sun.security.util.DerValue; import java.io.File; import java.io.IOException; import java.math.BigInteger; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.security.GeneralSecurityException; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.RSAPrivateCrtKeySpec; import java.util.Base64; public static PrivateKey pemFileLoadPrivateKeyPkcs1OrPkcs8Encoded(File pemFileName) throws GeneralSecurityException, IOException { // ... (code as shown in the question) }
Penjelasan Terperinci Ralat dan Penyelesaian:
Coretan kod asal cuba menghuraikan kunci persendirian menggunakan penyedia FIPS IBM, yang mungkin bukan kaedah yang paling sesuai. Kod yang dikemas kini menggunakan pendekatan yang lebih standard dengan kelas sun.security dan DerInputStream untuk mengendalikan kedua-dua format PKCS#1 dan PKCS#8. Ini memastikan pematuhan FIPS dan menangani ralat yang anda hadapi.
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Kunci Peribadi PKCS#1 dan PKCS#8 daripada Fail PEM di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!