Heim > Java > javaLernprogramm > Hauptteil

Wie analysiere ich private PKCS#1- und PKCS#8-Schlüssel aus einer PEM-Datei in Java?

Barbara Streisand
Freigeben: 2024-11-09 00:28:01
Original
970 Leute haben es durchsucht

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

Privaten RSA-Schlüssel aus PEM BASE64-codierter privater Schlüsseldatei abrufen

Beim Versuch, einen privaten Schlüssel aus einer PEM BASE64-codierten privaten Schlüsseldatei zu extrahieren , können Fehler wie die von Ihnen beschriebenen auftreten. Dies wird häufig durch die unsachgemäße Handhabung der Schlüsselspezifikation aufgrund der Verwendung nicht standardmäßiger Schlüsselformate verursacht.

Behebung der Fehler

Die Fehler, auf die Sie stoßen, sind hängt wahrscheinlich mit der Verwendung falscher Methoden zum Parsen des privaten Schlüssels zusammen. Anstatt sich auf potenziell nicht FIPS-kompatible Bibliotheken von Drittanbietern zu verlassen:

Aktualisierter Java-Code mit sun.security und DerInputStream:

Hier ist ein aktualisierter Java-Codeausschnitt, der verwendet die Klassen sun.security und DerInputStream, um sowohl die PKCS#1- als auch die PKCS#8-Formate privater Schlüssel zu analysieren und gleichzeitig die FIPS-Konformität sicherzustellen:

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)
}
Nach dem Login kopieren

Detaillierte Erklärung des Fehlers und der Lösung:

Der ursprüngliche Codeausschnitt versuchte, den privaten Schlüssel mithilfe des IBM FIPS-Anbieters zu analysieren, was möglicherweise nicht die am besten geeignete Methode ist. Der aktualisierte Code verwendet einen standardisierteren Ansatz mit den Klassen sun.security und DerInputStream, um sowohl PKCS#1- als auch PKCS#8-Formate zu verarbeiten. Dies stellt die FIPS-Konformität sicher und behebt die aufgetretenen Fehler.

Das obige ist der detaillierte Inhalt vonWie analysiere ich private PKCS#1- und PKCS#8-Schlüssel aus einer PEM-Datei in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage