This time we will perform RSA Encryption(Asymmetric encryption) with the help of the RSACryptoServiceProvider Class. Now its key length depends upon the Cryptographic Provider you have. For MS Base Cryptographic Provider you can have key length from 384 to 512 bits in increment of 8 bits where as if you have installed MS Enhanced Cryptographic Provider then you can have key of 384 to 16384 bits in increment of 8 bits.
using System;
using System.Security.Cryptography;
using System.Text;
class CryptRSA
{
static void main()
{
UnicodeEncoding bytConvertor = new UnicodeEncoding();
byte[] plainData = bytConvertor.GetBytes("Sample data");
RSACryptoServiceProvider RSAServiceProvider = new RSACryptoServiceProvider();
byte[] enData = Encrypt(plainData, RSAServiceProvider.ExportParameters(false));
Console.WriteLine("Encrypted Output: {0}", bytConvertor.GetString(enData));
byte[] deData = Decrypt(enData, RSAServiceProvider.ExportParameters(true));
Console.WriteLine("Decrypted Output: {0}", bytConvertor.GetString(deData));
}
static private byte[] Encrypt(byte[] DataToEncrypt, RSAParameters keyInfo)
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.ImportParameters(keyInfo);
return RSA.Encrypt(DataToEncrypt, false);
}
static private byte[] Decrypt(byte[] DataToDecrypt, RSAParameters keyInfo)
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.ImportParameters(keyInfo);
return RSA.Decrypt(DataToDecrypt, false);
}
}
