Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Menghuraikan Kunci Peribadi PKCS#1 dan PKCS#8 daripada Fail PEM di Java?

Barbara Streisand
Lepaskan: 2024-11-09 00:28:01
asal
971 orang telah melayarinya

How to Parse PKCS#1 and PKCS#8 Private Keys from a PEM File in Java?

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)
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan