2

我有一个公钥和一个私钥,还有一个我想解密的字符串。

公钥格式如下:

-----BEGIN PUBLIC KEY-----
(key here)
-----END PUBLIC KEY-----

私钥采用以下格式:

-----BEGIN RSA PRIVATE KEY-----
(key here)
-----END RSA PRIVATE KEY----- 

我要解密的字符串已使用公钥加密,然后我需要使用私钥对其进行解密。

我想知道我将如何去做这件事。

我一直在研究这个并发现RSACryptoServiceProvider,但对于加密/解密来说,似乎希望密钥采用带有模数和指数的 XML 格式。

我的问题是,有没有一种方法可以使用我拥有的数据生成具有模数和指数的 XML 格式,或者是否有另一种方法可以使用我拥有的数据解密字符串。

4

2 回答 2

1

要解析不是证书的私钥/公钥,您可以使用RSA Public、Private 和 PKCS #8 key parser。那里有可用的源代码,可以根据需要转换密钥。转换密钥后,您可以使用下面提到的加密和解密功能。

如果您有证书,则可以使用X509Certificate2 构造函数(字符串)从文件中加载您的证书和密钥。加载 X509Certificate2 后,您可以使用(RSACryptoServiceProvider)cert.PublicKey.Key和获取加密密钥(RSACryptoServiceProvider)cert.PrivateKey

使用MSDN 上X509Certificate2 类文档中示例中的 Encrypt 和 Decrypt 方法。您需要知道加密数据的格式以及使用的对称算法(如果有),然后适当地调整代码。

于 2012-10-11T19:43:02.973 回答
0

那是一种 pem 格式,您可以使用充气城堡(通过 nuget)读取私钥并使用它解密。我有一个项目(谷歌keyczar的 c# 实现),我在其中使用它来创建 keyczar 密钥集——参见代码:ImportedKeySet。如果您甚至不担心关键参数,并且直接使用 bouncy castle api 进行解密,工作量就会少得多。

如果您没有想要解密的现有数据,您可以使用 keyczar 框架,keyczar 框架更多的是关于简单性和安全加密事物,而不是解决所有问题的工具。

于 2012-10-12T00:24:46.017 回答