首頁 >後端開發 >C++ >如何從 .NET 中的 PEM 檔案檢索 RSA 私鑰?

如何從 .NET 中的 PEM 檔案檢索 RSA 私鑰?

DDD
DDD原創
2025-01-06 11:34:41241瀏覽

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

.NET 中從PEM 格式擷取RSA 私鑰

在.NET 中,讀取PEM 格式的CrRSAtoService並初始化RSARSAypyptoServiceProviderRSAyptoServiceProvider解密使用對應公鑰加密的資料的實例需要特定步驟。本文概述了完成此任務的兩種方法。

.NET 5 及更高版本

從.NET 5 開始,可以使用內建功能來讀取PEM 私有鍵:

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

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

預安裝庫

對於早期版本的.NET或如果內建功能不合適,BouncyCastle 等外部程式庫提供了解決方案:

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

以上是如何從 .NET 中的 PEM 檔案檢索 RSA 私鑰?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn