当前位置:实例文章 » C#开发实例» [文章]c#使用RSA公钥解密

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`异常并打印出错误信息。

请注意,上述示例代码中的公钥和密文都是占位符,需要根据实际情况进行替换。

相关标签:c#java开发语言
其他信息

其他资源

Top