c#RSA从私钥中提取公钥

c#RSA从私钥中提取公钥,c#,rsa,public-key,private-key,C#,Rsa,Public Key,Private Key,在c#中有没有从私钥中提取公钥的方法?因为如果我做了ToXMLString(),那么我就可以设置是否需要使用私钥保存公钥信息。所以现在我想有没有一种方法可以从私钥中提取公钥?如果你可以保存它,并包含私钥,那么你保存的不仅仅是私钥 但是,如果您确实只有私钥,那么就不能从中“提取”公钥。如果你能做到这一点,你将使今天的大部分安全性过时 所以基本上,我不相信你只有私钥,你有一对密钥,你应该能够从中提取公钥 这在C#或.NET中是否容易实现,我不知道。从私钥中取模,公共指数很可能是65537。到目前为止

在c#中有没有从私钥中提取公钥的方法?因为如果我做了
ToXMLString()
,那么我就可以设置是否需要使用私钥保存公钥信息。所以现在我想有没有一种方法可以从私钥中提取公钥?

如果你可以保存它,并包含私钥,那么你保存的不仅仅是私钥

但是,如果您确实只有私钥,那么就不能从中“提取”公钥。如果你能做到这一点,你将使今天的大部分安全性过时

所以基本上,我不相信你只有私钥,你有一对密钥,你应该能够从中提取公钥


这在C#或.NET中是否容易实现,我不知道。

从私钥中取模,公共指数很可能是65537。到目前为止,我所见过的所有微软密码系统都会产生具有该指数的公钥。公钥指数和模的组合是公钥。

RSA的常规私钥格式包括公钥(“公钥指数”对于以抵抗定时攻击的方式实现私钥操作非常有用)。因此,可以从私钥中提取公钥

(从理论上讲,拥有“纯RSA私钥”是可能的这不包括公共指数,但它有缺点,例如更难防止旁道攻击,性能降低。因此,没有人会这样做。您可以假设,当您拥有私钥时,您实际上拥有完整的密钥对。)


在C#/.NET标准库中,公共和私有RSA密钥可以表示为XML字符串(
ToXmlString()
FromXmlString()
)或自定义
rsapameters
结构(
ExportParameters()
ImportParameters()
)。如果您可以获得完整的私钥,那么您只需选择公共字段(模数和公共指数),它们共同构成公钥。请注意,
rsacyptoserviceprovider
可能是底层RSA实现的接口,该实现可能会拒绝导出私钥(但通常会接受导出公钥)。

要从中提取公钥的文件名是什么?它不是一个文件,实际上是一个rsacyptoserviceprovider(),谢谢!正是我希望听到的(:哦,好吧,那意味着我必须注册我的帐户(: