Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Security.Cryptography;
- using System.Text;
- using System.Collections.Generic;
- using System.IO;
- class RSACSPSample
- {
- static void Main()
- {
- try
- {
- //Create a UnicodeEncoder to convert between byte array and string.
- UnicodeEncoding ByteConverter = new UnicodeEncoding();
- Console.Write("Enter A Text To Encrypt: ");
- string onevs1 = Console.ReadLine();
- //Create byte arrays to hold original, encrypted, and decrypted data.
- byte[] dataToEncrypt = ByteConverter.GetBytes(onevs1);
- byte[] encryptedData;
- byte[] decryptedData;
- //Create a new instance of RSACryptoServiceProvider to generate
- //public and private key data.
- using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
- {
- encryptedData = RSAEncrypt(dataToEncrypt, RSA.ExportParameters(false), false);
- // decryptedData = RSADecrypt(encryptedData, RSA.ExportParameters(true), false);
- var cypherText = Convert.ToBase64String(encryptedData);
- Console.WriteLine("Eecrypted plaintext: {0}", cypherText);
- Console.WriteLine();
- var ChyperUser = Console.ReadLine();
- byte[] decData = Base64Decode(ChyperUser);
- decryptedData = RSADecrypt(decData, RSA.ExportParameters(true), false);
- Console.WriteLine("Decrypted plaintext: {0}", ByteConverter.GetString(decryptedData));
- }
- }
- catch (Exception e)
- {
- //Catch this exception in case the encryption did
- //not succeed.
- Console.WriteLine("Encryption failed.");
- }
- }
- public static byte[] Base64Decode(string base64EncodedData)
- {
- return Convert.FromBase64String(base64EncodedData);
- }
- static public byte[] RSAEncrypt(byte[] DataToEncrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding)
- {
- try
- {
- byte[] encryptedData;
- //Create a new instance of RSACryptoServiceProvider.
- using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
- {
- //Import the RSA Key information. This only needs
- //toinclude the public key information.
- RSA.ImportParameters(RSAKeyInfo);
- //Encrypt the passed byte array and specify OAEP padding.
- //OAEP padding is only available on Microsoft Windows XP or
- //later.
- encryptedData = RSA.Encrypt(DataToEncrypt, DoOAEPPadding);
- }
- return encryptedData;
- }
- //Catch and display a CryptographicException
- //to the console.
- catch (CryptographicException e)
- {
- Console.WriteLine(e.Message);
- return null;
- }
- }
- static public byte[] RSADecrypt(byte[] DataToDecrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding)
- {
- try
- {
- byte[] decryptedData;
- //Create a new instance of RSACryptoServiceProvider.
- RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
- //Import the RSA Key information. This needs
- //to include the private key information.
- RSA.ImportParameters(RSAKeyInfo);
- //Decrypt the passed byte array and specify OAEP padding.
- //OAEP padding is only available on Microsoft Windows XP or
- //later.
- decryptedData = RSA.Decrypt(DataToDecrypt, DoOAEPPadding);
- return decryptedData;
- }
- //Catch and display a CryptographicException
- //to the console.
- catch (CryptographicException e)
- {
- Console.WriteLine(e.ToString());
- return null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement