首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从RSACryptoServiceProvider解码密钥

从RSACryptoServiceProvider解码密钥
EN

Stack Overflow用户
提问于 2021-08-18 05:01:28
回答 1查看 992关注 0票数 1

我正在尝试使用RSACryptoServiceProvider.ExportRSAPrivateKey()对象中提取私钥。根据MSDN,它导出一个“包含此键的PKCS#1 RSAPrivateKey表示的字节数组”,该表示是在RFC8017附录A中定义的。因此,基于此,我假设它应该是an 1编码的,并尝试使用AsnReader类:

代码语言:javascript
复制
using (var rsa = new RSACryptoServiceProvider(1024))
{
    var priv = rsa.ExportRSAPrivateKey();
    var asnr = new AsnReader(priv, AsnEncodingRules.DER);
    var N = asnr.ReadInteger();
}

但是,此代码在.ReadInteger()上失败,例外情况是:"The provided data is tagged with 'Universal' class value '16', but it should have been 'Universal' class value '2'."

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-18 05:19:57

因为RSAPublicKey是序列..。

所以你必须读取一个序列然后,整数..。

我想您正在使用Microsoft AsnReader类。

因此,代码可以是这样的:

代码语言:javascript
复制
var publicKey = asnr.ReadSequence()
var N = publickKey.ReadInteger()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68826807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档