Heim >Backend-Entwicklung >C++ >Wie rufe ich einen privaten RSA-Schlüssel aus einer PEM-Datei in .NET ab?

Wie rufe ich einen privaten RSA-Schlüssel aus einer PEM-Datei in .NET ab?

DDD
DDDOriginal
2025-01-06 11:34:41238Durchsuche

How to Retrieve an RSA Private Key from a PEM File in .NET?

Abruf privater RSA-Schlüssel in .NET aus dem PEM-Format

In .NET Lesen eines PEM-formatierten privaten RSA-Schlüssels und Initialisieren eines RSACryptoServiceProvider Eine Instanz zum Entschlüsseln von Daten, die mit dem entsprechenden öffentlichen Schlüssel verschlüsselt wurden, erfordert bestimmte Schritte. In diesem Artikel werden zwei Ansätze zum Erreichen dieser Aufgabe beschrieben.

.NET 5 und höher

Ab .NET 5 steht eine integrierte Funktion zum Lesen von PEM Private zur Verfügung Schlüssel:

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

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

Vorinstalliert Bibliotheken

Für frühere Versionen von .NET oder wenn die integrierte Funktionalität nicht geeignet ist, bieten externe Bibliotheken wie BouncyCastle eine Lösung:

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

Das obige ist der detaillierte Inhalt vonWie rufe ich einen privaten RSA-Schlüssel aus einer PEM-Datei in .NET ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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