【发布时间】:2019-02-27 07:17:25
【问题描述】:
我需要以 DER 格式获取我的 RSA 公钥的字节并将此密钥发送到 API。然后,此 API 将向我发送使用此公钥加密的内容,我需要对其进行解密。
第一个问题,C# 似乎无法以 DER 格式导出 RSA 密钥。所以看来我必须依赖像 BouncyCastle 这样的 3rd 方包。我还找到了一种使用此包以 DER 格式生成和导出我的公钥的方法:
var generator = new RsaKeyPairGenerator();
generator.Init(new KeyGenerationParameters(new SecureRandom(), 2048));
var keyPair = generator.GenerateKeyPair();
var publicKeyParam = (RsaKeyParameters)keyPair.Public;
var publicKey = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(publicKeyParam).GetDerEncoded();
所以现在我只需要对这些字节进行 Base64 编码并将其发送到 API 并且 API 很高兴。但现在我一直在试图弄清楚如何解密我收到的数据。首先我解码了base64字符串,现在我被数据的字节所困扰。我可以从 BouncyCastle“东西”获取私钥,但我似乎无法正确将其转换为 RsaCryptoServiceProvider,而且 BouncyCastle 文档有点奇怪。 如果有人有想法或其他方法,我会非常高兴。
【问题讨论】:
-
看看
Org.BouncyCastle.Security.DotNetUtilities中的方法。
标签: c# rsa bouncycastle der