gpt4 book ai didi

c# - 如何从 .NET 读取 PEM RSA 私钥

转载 作者:IT王子 更新时间:2023-10-29 03:44:52 25 4
gpt4 key购买 nike

我有一个 PEM 格式的 RSA 私钥,有没有直接的方法从 .NET 读取它并实例化一个 RSACryptoServiceProvider 解密用相应公钥加密的数据?

最佳答案

2021 年 3 月 3 日更新

.NET 5 现在开箱即用地支持这一点。

要尝试下面的代码片段,请生成一个 key 对并在 http://travistidwell.com/jsencrypt/demo/ 处加密一些文本

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

原始答案

我解决了,谢谢。如果有人感兴趣,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));

关于c# - 如何从 .NET 读取 PEM RSA 私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/243646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com