Для начала нам нужно получить открытый и закрытый ключи, далее их нужно где-то сохранить для последующей работы.
Затем взять нужные данные, сконвертировать их в массив байтов и зашифровать Ну а затем расшифровать. Собственно открытым мы шифруем, закрытым дешифруем. Собственно вот пример кода который все иллюстрирует
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
RSACryptoServiceProvider RsaKey = new RSACryptoServiceProvider();
string publickey = RsaKey.ToXmlString(false); //получим открытый ключ
string privatekey = RsaKey.ToXmlString(true); //получим закрытый ключ
File.WriteAllText("private.xml", privatekey, Encoding.UTF8);
File.WriteAllText("public.xml", publickey, Encoding.UTF8);
byte[] EncryptedData;
byte[] data = new byte[1024];
data = Encoding.UTF8.GetBytes("Hello");
EncryptedData = RsaKey.Encrypt(data, false);
byte[] DecryptedData = new byte[1024];
DecryptedData = RsaKey.Decrypt(EncryptedData, false);
RSACryptoServiceProvider RsaKey_n = new RSACryptoServiceProvider();
RsaKey_n.FromXmlString(publickey + privatekey); //можно использовать только открытый ключ, или пару открытый и закрыты
DecryptedData = new byte[1024];
DecryptedData = RsaKey.Decrypt(EncryptedData, false);
Console.Read();
}
}
}