C# 使用私钥(RSA)解密字符串
我有一个公钥和一个私钥,还有一个我想要解密的字符串 公钥的格式如下:C# 使用私钥(RSA)解密字符串,c#,encryption,rsa,private-key,rsacryptoserviceprovider,C#,Encryption,Rsa,Private Key,Rsacryptoserviceprovider,我有一个公钥和一个私钥,还有一个我想要解密的字符串 公钥的格式如下: -----BEGIN PUBLIC KEY----- (key here) -----END PUBLIC KEY----- -----BEGIN RSA PRIVATE KEY----- (key here) -----END RSA PRIVATE KEY----- 私钥的格式如下: -----BEGIN PUBLIC KEY----- (key here) -----END PUBLIC KEY----- ---
-----BEGIN PUBLIC KEY-----
(key here)
-----END PUBLIC KEY-----
-----BEGIN RSA PRIVATE KEY-----
(key here)
-----END RSA PRIVATE KEY-----
私钥的格式如下:
-----BEGIN PUBLIC KEY-----
(key here)
-----END PUBLIC KEY-----
-----BEGIN RSA PRIVATE KEY-----
(key here)
-----END RSA PRIVATE KEY-----
我要解密的字符串已使用公钥加密,然后我需要使用私钥对其进行解密
我在想我该怎么做
我一直在研究这一点,发现rsacyptoserviceprovider
但对于加密/解密,它似乎希望密钥采用带模数和指数的XML格式
我的问题是,是否有一种方法可以使用我拥有的数据生成具有模数和指数的XML格式,或者是否有另一种方法可以使用我拥有的数据对字符串进行解密。对于解析非证书的私钥/公钥,可以使用。那里有可以根据需要转换密钥的源代码。转换密钥后,可以使用下面引用的加密和解密函数 如果您有证书,可以使用从文件加载证书和密钥。加载X509Certificate2后,可以使用
(rsacyptoServiceProvider)cert.PublicKey.Key
和(rsacyptoServiceProvider)cert.PrivateKey
获取加密密钥
使用MSDN文档中示例中的加密和解密方法。您需要知道加密数据的格式,以及使用的对称算法(如果有),然后根据需要调整代码。这是pem格式,您可以使用(通过nuget)读取私钥并使用它进行解密。我有一个项目(谷歌的c#实现),我用它来创建一个keyczar密钥集——请参见代码:。如果您甚至不担心密钥参数,并且直接使用bouncy castle api进行解密,那么工作就会少很多
如果没有要解密的现有数据,可以使用keyczar框架,keyczar框架更注重简单性和安全加密,而不是解决所有问题的工具。非对称密钥无法解密长度超过其密钥长度的数据。以下问题的答案可能会帮助您:@owlstead您是对的,我在看问题时忽略了这一点,我看到了PEM样式,没有仔细看足够地我将修改答案。