How to Encrypt and Decrypt data using RSA in C#
By FoxLearn 7/26/2024 1:59:17 AM 19.35K
RSA is an asymmetric coding system developed by Ron Rivest, Adi Shamir and Leonard Adleman (its name is also the abbreviation of these three authors). It is widely used for encryption and electronic signature technology. It works by using a public key to share with everyone.
RSA operation is based on 4 main steps: key generation, key sharing, encryption and decryption.
This article will guide you in detail about algorithm c# rsa generate public and private key, then helps you encryption and decryption in c# with key.
How to encrypt and decrypt string using RSA algorithm in C#
To encrypt and decrypt strings using the RSA algorithm in C#, you can use the RSACryptoServiceProvider
class provided by the .NET framework. Here's a basic example of how to do it:
Drag and drop the TextBox, Label and Button controls from the Visual Studio toolbox into your winform designer, then you can design a simple UI that allows you to encrypt and decrypt a string using the RSA algorithm in c# code as shown below.
Encryption and Decryption using RSA algorithm in C#
Through this c# cryptography tutorial, I will create an Encrypt method to encrypt your data using RSA algorithm.
// c# encrypt rsa byte[] Encrypt(byte[] data, RSAParameters RSAKey, bool fOAEP) { byte[] encryptedData; // Create an instance of RSA using (RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider()) { rSACryptoServiceProvider.ImportParameters(RSAKey); encryptedData = rSACryptoServiceProvider.Encrypt(data, fOAEP); } return encryptedData; }
Similarly, Create the Decrypt method to decrypt your data using RSA algorithm.
// c# decrypt rsa byte[] Decrypt(byte[] data, RSAParameters RSAKey, bool fOAEP) { byte[] decryptedData; using (RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider()) { rSACryptoServiceProvider.ImportParameters(RSAKey); decryptedData = rSACryptoServiceProvider.Decrypt(data, fOAEP); } return decryptedData; }
C# RSA encrypt with public key
Next, Declare unicodeEncoding, rSACryptoServiceProvider, data and encryptData variables as shown below.
UnicodeEncoding unicodeEncoding = new UnicodeEncoding(); RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider(); byte[] data; byte[] encryptData;
Finally, Use RSA to generate public and private key by calling the ExportParameters method.
rSACryptoServiceProvider.ExportParameters(false)
RSA algorithm performs encryption and decryption in c# with key.
Adding a click event handler to the Encrypt button allows you to encrypt data using RSA algorithm.
// c# rsa encrypt private void btnEncrypt_Click(object sender, EventArgs e) { data = unicodeEncoding.GetBytes(txtInput.Text); encryptData = Encrypt(data, rSACryptoServiceProvider.ExportParameters(false), false); txtEncrypt.Text = unicodeEncoding.GetString(encryptData); }
Adding a click event handler to the Decrypt button allowing you to decrypt data.
// c# rsa decrypt private void btnDecrypt_Click(object sender, EventArgs e) { byte[] data = Decrypt(encryptData, rSACryptoServiceProvider.ExportParameters(true), false); txtDecrypt.Text = unicodeEncoding.GetString(data); }
You can also create a web api or web services to support rsa encryption online.
This example demonstrates how to generate a public and private key pair, encrypt a string using the public key, and decrypt the encrypted string using the private key.
- How to Encrypt and Decrypt a String in C#
- How to encrypt connectionstring in app.config
- How to Encrypt and Decrypt plain string using RC4 in C#
- How to Encrypt and Decrypt plain string using ROT13 in C#
- How to Encrypt and Decrypt plain string using Triple DES in C#
- How to encrypt with MD5 in C#
- How to Encrypt and Decrypt ConnectionString in App.config file in C#
- How to Encrypt and Decrypt files using AES encryption algorithm in C#