在C#中进行RSA加密和解密可以使用RSACryptoServiceProvider类。下面是一个示例代码,演示了如何使用RSA进行加密和解密:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
// 创建一个新的RSA实例
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
// 获取RSA公钥和私钥
string publicKey = rsa.ToXmlString(false);
string privateKey = rsa.ToXmlString(true);
Console.WriteLine("原始数据:Hello, RSA!");
// 使用公钥进行加密
byte[] encryptedData = EncryptData(Encoding.UTF8.GetBytes("Hello, RSA!"), publicKey);
Console.WriteLine("加密后的数据:" + Convert.ToBase64String(encryptedData));
// 使用私钥进行解密
byte[] decryptedData = DecryptData(encryptedData, privateKey);
Console.WriteLine("解密后的数据:" + Encoding.UTF8.GetString(decryptedData));
}
}
// 使用给定的公钥进行数据加密
static byte[] EncryptData(byte[] data, string publicKey)
{
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.FromXmlString(publicKey);
return rsa.Encrypt(data, false);
}
}
// 使用给定的私钥进行数据解密
static byte[] DecryptData(byte[] data, string privateKey)
{
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.FromXmlString(privateKey);
return rsa.Decrypt(data, false);
}
}
}
请注意,此示例使用默认的RSA密钥长度(1024位)。对于更高安全性要求,可以考虑使用更长的密钥长度。
内容由零声教学AI助手提供,问题来源于学员提问




