c#使用RSA公钥解密
发布人:shili8
发布时间:2024-01-05 07:11
阅读次数:58
下面是一个使用C#进行RSA公钥解密的示例代码,包含了详细的代码注释:
csharpusing System; using System.Security.Cryptography; using System.Text; class Program{ static void Main() { try { // 创建一个RSA实例 using (RSA rsa = RSA.Create()) { // 加载公钥 rsa.FromXmlString(""); // 要解密的密文 byte[] encryptedData = Convert.FromBase64String("..."); // 使用公钥进行解密 byte[] decryptedData = rsa.Decrypt(encryptedData, RSAEncryptionPadding.Pkcs1); // 将解密后的数据转换为字符串 string decryptedText = Encoding.UTF8.GetString(decryptedData); Console.WriteLine("解密结果:"); Console.WriteLine(decryptedText); } } catch (CryptographicException e) { Console.WriteLine("解密失败:" + e.Message); } } } ... ...
在上面的示例代码中,我们首先创建了一个RSA实例,然后使用`FromXmlString`方法加载公钥。公钥的XML格式可以通过其他方式获取,例如从文件或网络中读取。
接下来,我们定义了要解密的密文,这里假设密文是Base64编码的字符串,使用`Convert.FromBase64String`方法将其转换为字节数组。
然后,我们调用`rsa.Decrypt`方法使用公钥进行解密,解密算法使用的是PKCS#1填充方式。
最后,我们将解密后的字节数组转换为字符串,使用`Encoding.UTF8.GetString`方法进行转换。
如果解密成功,我们将打印出解密结果;如果解密失败,我们将捕获`CryptographicException`异常并打印出错误信息。
请注意,上述示例代码中的公钥和密文都是占位符,需要根据实际情况进行替换。