Maison > développement back-end > C++ > Comment lire et utiliser une clé privée PEM RSA dans .NET ?

Comment lire et utiliser une clé privée PEM RSA dans .NET ?

Mary-Kate Olsen
Libérer: 2025-01-06 11:38:41
original
248 Les gens l'ont consulté

How to Read and Use a PEM RSA Private Key in .NET?

Lecture d'une clé privée PEM RSA dans .NET

Dans .NET, il existe plusieurs approches pour lire une clé privée PEM RSA et instancier un RSACryptoServiceProvider à des fins de décryptage.

Utilisation de .NET 5 et ci-dessus

Pour .NET 5 et versions ultérieures, la prise en charge de la lecture des clés privées PEM RSA est intégrée. L'exemple de code suivant montre comment procéder :

var privateKey = @""-----BEGIN RSA PRIVATE KEY-----
{ the full PEM private key } 
-----END RSA PRIVATE KEY-----"";

var rsa = RSA.Create();
rsa.ImportFromPem(privateKey.ToCharArray());

var decryptedBytes = rsa.Decrypt(
    Convert.FromBase64String("{ base64-encoded encrypted string }"), 
    RSAEncryptionPadding.Pkcs1
);

// this will print the original unencrypted string
Console.WriteLine(Encoding.UTF8.GetString(decryptedBytes));
Copier après la connexion

Utilisation de la bibliothèque Bouncy Castle

Pour les anciennes versions de .NET, vous pouvez utiliser la bibliothèque Bouncy Castle pour lire les clés privées PEM RSA. Voici un exemple :

var bytesToDecrypt = Convert.FromBase64String("la0Cz.....D43g=="); // string to decrypt, base64 encoded
 
AsymmetricCipherKeyPair keyPair; 
 
using (var reader = File.OpenText(@"c:\myprivatekey.pem")) // file containing RSA PKCS1 private key
    keyPair = (AsymmetricCipherKeyPair) new PemReader(reader).ReadObject(); 
 
var decryptEngine = new Pkcs1Encoding(new RsaEngine());
decryptEngine.Init(false, keyPair.Private); 
 
var decrypted = Encoding.UTF8.GetString(decryptEngine.ProcessBlock(bytesToDecrypt, 0, bytesToDecrypt.Length)); 
Copier après la connexion

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!

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