Maison >développement back-end >C++ >Comment lire et utiliser une clé privée PEM RSA dans .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!