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
Mary-Kate Olsenoriginal
2025-01-06 11:38:41195parcourir

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));

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)); 

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:
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