c#RSA从私钥中提取公钥
有没有办法从c#中的私钥中提取公钥?如果我这样做ToXMLString()
,那么我可以设置,如果我想要公钥信息与私钥保存。那么现在我想,有没有办法从私人中提取公钥?c#RSA从私钥中提取公钥
RSA的普通私有密钥格式包括公钥(“公开指数”用于抵抗定时攻击的方式实现私钥操作)。因此,可以从私钥中提取公钥。 (理论上可能有一个“纯粹的RSA私钥”,它不包括公开指数,但它有缺点,比如防止侧向信道攻击的难度更大,并且性能下降。你可以假设当你有私钥时,你实际上拥有完整的密钥对)
在C#/ .NET标准库中,公共和私有RSA密钥可以表示为XML字符串(ToXmlString()
和FromXmlString()
)或定制的RSAParameters
结构(ExportParameters()
和ImportParameters()
)。如果您可以获得完整的私钥,那么您只需选择构成公钥的公共字段(模数和公开指数)即可。请注意,RSACryptoServiceProvider
可能是底层RSA实现的接口,可能拒绝导出私钥(但通常会接受导出公钥)。
)谢谢!正是我希望听到的(: – hs2d 2011-04-07 19:33:14
如果您可以保存它并包含私钥,那么您保存的不仅仅是私钥。
但是,如果你真的只有私钥,那么不,你不能从中提取公钥。如果你能做到这一点,你会使大多数今天的安全过时。所以基本上,我不相信你只有私钥,你有一个密钥对,你应该能够从中提取公钥。
无论在C#还是.NET中都很容易实现,我不知道。
感谢您的回答。 – hs2d 2011-04-07 19:40:28
要从中提取公钥的文件的名称是什么? – 2011-04-07 19:29:42
那么它不是一个文件,它实际上是一个RSACryptoServiceProvider() – hs2d 2011-04-07 19:34:09