Basic RSA in .NET

Here’s a very basic example of RSA encryption in .NET:

string priv, pub;
string plain = "hello world" ;
byte[] plainBytes = Encoding.UTF8.GetBytes(plain);
byte[] encBytes;
using (var rsa = new RSACryptoServiceProvider(2048)) {
    priv = rsa.ToXmlString(true);
    Console.WriteLine(priv);
    Console.WriteLine();
    pub = rsa.ToXmlString(false);
    Console.WriteLine(pub);
    encBytes = rsa.Encrypt(plainBytes, true);
}
 
using (var rsa = new RSACryptoServiceProvider(2048)) {
    rsa.FromXmlString(priv);
    byte[] decBytes = rsa.Decrypt(encBytes, true);
    Console.WriteLine(Encoding.UTF8.GetString(decBytes));
}

And a very basic example of verifying data using a signature:

byte[] input = new byte[] { 1, 2, 3, 4, 5, 6 };
string rsaParams;
byte[] sig;
using (var rsa = new RSACryptoServiceProvider())
{
    rsaParams = rsa.ToXmlString(true);
    Console.WriteLine(rsaParams.ToString());
    sig = rsa.SignData(input, "SHA256");
    Console.WriteLine(Convert.ToBase64String(sig));
}
 
using (var rsa = new RSACryptoServiceProvider())
{
    rsa.FromXmlString(rsaParams);
    Console.WriteLine("Verify: {0}", rsa.VerifyData(input, "SHA256", sig));
}


Comments

Popular posts from this blog

C# Record Serialization

Add timestamp to photo using ImageMagick

Read/write large blob to SQL Server from C#