Heim > Backend-Entwicklung > C++ > Wie lese und verwende ich einen privaten PEM-RSA-Schlüssel zur Entschlüsselung in .NET?

Wie lese und verwende ich einen privaten PEM-RSA-Schlüssel zur Entschlüsselung in .NET?

Linda Hamilton
Freigeben: 2025-01-06 11:39:41
Original
175 Leute haben es durchsucht

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

Lesen eines privaten PEM-RSA-Schlüssels in .NET

In .NET können Sie bequem einen privaten PEM-RSA-Schlüssel lesen und einen RSACryptoServiceProvider instanziieren um mit dem entsprechenden öffentlichen Schlüssel verschlüsselte Daten zu entschlüsseln.

.NET 5 Unterstützung

.NET 5 bietet jetzt integrierte Unterstützung für diese Aufgabe. Um es zu nutzen, gehen Sie wie folgt vor:

  1. Generieren Sie ein Schlüsselpaar und verschlüsseln Sie Text mit einem Online-Tool wie http://travistidwell.com/jsencrypt/demo/.
  2. Verwenden Verwenden Sie den folgenden Codeausschnitt, um den privaten PEM-Schlüssel zu importieren und zu entschlüsseln Chiffretext:
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));
Nach dem Login kopieren

Ursprüngliche BouncyCastle-Lösung

Vor .NET 5 stellte die BouncyCastle-Bibliothek eine Lösung bereit:

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

Das obige ist der detaillierte Inhalt vonWie lese und verwende ich einen privaten PEM-RSA-Schlüssel zur Entschlüsselung in .NET?. 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