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) }
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!