Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.57 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Security.Cryptography;
  4. using System.Text;
  5.  
  6. class ManagedAesSample
  7. {
  8.     public static void Main()
  9.     {
  10.         Console.WriteLine("Enter text that needs to be encrypted..");
  11.         string data = Console.ReadLine();
  12.         EncryptAesManaged(data);
  13.         Console.ReadLine();
  14.     }
  15.     static void EncryptAesManaged(string raw)
  16.     {
  17.         try
  18.         {
  19.             // Create Aes that generates a new key and initialization vector (IV).    
  20.             // Same key must be used in encryption and decryption    
  21.             byte[] IV;
  22.             byte[] key = Encoding.UTF8.GetBytes("123");
  23.             MD5 md5 = new MD5CryptoServiceProvider();
  24.             IV = md5.ComputeHash(key);
  25.             byte[] Key;
  26.             SHA256 shaM = new SHA256Managed();
  27.             Key = shaM.ComputeHash(key);
  28.  
  29.             using (AesManaged aes = new AesManaged())
  30.             {
  31.                 // Encrypt string    
  32.                 byte[] encrypted = Encrypt(raw, Key, IV);
  33.                 // Print encrypted string    
  34.                 Console.WriteLine($"Encrypted data: {System.Text.Encoding.UTF8.GetString(encrypted)}");
  35.                 // Decrypt the bytes to a string.    
  36.                 string decrypted = Decrypt(encrypted, Key, IV);
  37.                 // Print decrypted string. It should be same as raw data    
  38.                 Console.WriteLine($"Decrypted data: {decrypted}");
  39.             }
  40.         }
  41.         catch (Exception exp)
  42.         {
  43.             Console.WriteLine(exp.Message);
  44.         }
  45.         Console.ReadKey();
  46.     }
  47.     static byte[] Encrypt(string plainText, byte[] Key, byte[] IV)
  48.     {
  49.         byte[] encrypted;
  50.         // Create a new AesManaged.    
  51.         using (AesManaged aes = new AesManaged())
  52.         {
  53.             // Create encryptor    
  54.             ICryptoTransform encryptor = aes.CreateEncryptor(Key, IV);
  55.             // Create MemoryStream    
  56.             using (MemoryStream ms = new MemoryStream())
  57.             {
  58.                 // Create crypto stream using the CryptoStream class. This class is the key to encryption    
  59.                 // and encrypts and decrypts data from any given stream. In this case, we will pass a memory stream    
  60.                 // to encrypt    
  61.                 using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
  62.                 {
  63.                     // Create StreamWriter and write data to a stream    
  64.                     using (StreamWriter sw = new StreamWriter(cs))
  65.                         sw.Write(plainText);
  66.                     encrypted = ms.ToArray();
  67.                 }
  68.             }
  69.         }
  70.         // Return encrypted data    
  71.         return encrypted;
  72.     }
  73.     static string Decrypt(byte[] cipherText, byte[] Key, byte[] IV)
  74.     {
  75.         string plaintext = null;
  76.         // Create AesManaged    
  77.         using (AesManaged aes = new AesManaged())
  78.         {
  79.             // Create a decryptor    
  80.             ICryptoTransform decryptor = aes.CreateDecryptor(Key, IV);
  81.             // Create the streams used for decryption.    
  82.             using (MemoryStream ms = new MemoryStream(cipherText))
  83.             {
  84.                 // Create crypto stream    
  85.                 using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
  86.                 {
  87.                     // Read crypto stream    
  88.                     using (StreamReader reader = new StreamReader(cs))
  89.                         plaintext = reader.ReadToEnd();
  90.                 }
  91.             }
  92.         }
  93.         return plaintext;
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement