【发布时间】:2019-10-10 22:38:38
【问题描述】:
我有以下代码:
byte[] rsaKey;
using (var rsa = new RSACryptoServiceProvider(1024))
{
rsaKey = rsa.ExportCspBlob(false);
}
结果是rsaKey的长度是148字节而不是128。
这是为什么呢?
我必须将公钥rsaKey 传递给其他系统,以便其他系统加密一些数据,然后这些数据将再次发送给我。
我必须使用什么密钥来解密?
【问题讨论】:
-
密钥的长度为 128,但 ExportScpBlob 导出所有需要进行加密/解密的参数。请查看 struct RSAParameters。我认为其中一些数据也被导出。不仅是钥匙。
-
@Hostel 好的,所以其他系统需要这些参数才能使用我的公钥进行加密,对吗?
-
是的,但请记住,您需要导出这些参数,但不是全部。只有公钥和与公钥相关的操作所需的参数。这里有一些很好的例子:docs.microsoft.com/en-us/dotnet/api/…
标签: c# cryptography rsacryptoserviceprovider