Maison > Java > javaDidacticiel > Comment analyser les clés privées PKCS#1 et PKCS#8 à partir d'un fichier PEM en Java ?

Comment analyser les clés privées PKCS#1 et PKCS#8 à partir d'un fichier PEM en Java ?

Barbara Streisand
Libérer: 2024-11-09 00:28:01
original
1016 Les gens l'ont consulté

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

Obtention d'une clé privée RSA à partir d'un fichier de clé privée codé PEM BASE64

Lors de la tentative d'extraction d'une clé privée à partir d'un fichier de clé privée codé PEM BASE64 , vous pouvez rencontrer des erreurs comme celles que vous avez décrites. Ceci est généralement dû à une gestion inappropriée de la spécification de clé en raison de l'utilisation de formats de clé non standard.

Résolution des erreurs

Les erreurs que vous rencontrez sont probablement lié à l'utilisation de méthodes incorrectes pour analyser la clé privée. Au lieu de s'appuyer sur des bibliothèques tierces potentiellement non conformes à la FIPS :

Code Java mis à jour à l'aide de sun.security et DerInputStream :

Voici un extrait de code Java mis à jour qui utilise le sun.security et le DerInputStream classes pour analyser les formats PKCS#1 et PKCS#8 de clés privées, tout en garantissant la conformité 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)
}
Copier après la connexion

Explication détaillée de l'erreur et de la résolution :

Le L'extrait de code d'origine a tenté d'analyser la clé privée à l'aide du fournisseur IBM FIPS, ce qui n'est peut-être pas la méthode la plus appropriée. Le code mis à jour utilise une approche plus standardisée avec les classes sun.security et DerInputStream pour gérer les formats PKCS#1 et PKCS#8. Cela garantit la conformité FIPS et corrige les erreurs que vous avez rencontrées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal