Guest User

AES Encrpytor

a guest
May 21st, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.28 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Security.Cryptography;
  11. using System.IO;
  12.  
  13. namespace EncryptionSoftware
  14. {
  15.     public partial class Form1 : Form
  16.     {
  17.         public Form1()
  18.         {
  19.             InitializeComponent();
  20.         }
  21.  
  22.         string file;
  23.  
  24.  
  25.         private void button2_Click(object sender, EventArgs e)
  26.         {
  27.             if (textBox1.Text == "")
  28.                 MessageBox.Show("ERROR!");
  29.             else
  30.             {
  31.                 byte[] selectedFileBytes = File.ReadAllBytes(file);
  32.                 byte[] passwordBytes = System.Text.Encoding.UTF8.GetBytes(textBox1.Text);
  33.                 using (var aesProvider = new AesCryptoServiceProvider())
  34.                 {
  35.                     aesProvider.KeySize = 256;
  36.                     aesProvider.Key = System.Text.Encoding.UTF8.GetBytes(textBox1.Text);
  37.                     aesProvider.GenerateIV();
  38.                     aesProvider.Mode = CipherMode.CBC;
  39.                     aesProvider.Padding = PaddingMode.PKCS7;
  40.                     using (var aesEncryptor = aesProvider.CreateEncryptor(aesProvider.Key, aesProvider.IV))
  41.                     {
  42.                         using (var fstream = new FileStream(file+".crypt",FileMode.Create))
  43.                         {
  44.                             //algoritmul foloseste un vector de initializare (IV) pe 16 bytes
  45.                             //retinem IV generat automat pentru o mai buna securitate si posibilitatea decryptari fisierului
  46.                             fstream.Write(aesProvider.IV, 0, 16);
  47.                             using (CryptoStream cs = new CryptoStream(fstream, aesEncryptor, CryptoStreamMode.Write))
  48.                             {
  49.                                 cs.Write(selectedFileBytes, 0, selectedFileBytes.Length);
  50.                                 cs.FlushFinalBlock();
  51.                                 //Flush final block method indica CryptoStream-ului ca nu mai urmeaza sa apara alte date si trebuie sa introduca padding-ul specific algoritmului
  52.                                
  53.                             }
  54.  
  55.                         }
  56.                     }
  57.                 }
  58.             }
  59.         }
  60.  
  61.         private void button1_Click(object sender, EventArgs e)
  62.         {
  63.             openFileDialog1.ShowDialog();
  64.             file = openFileDialog1.FileName.ToString();
  65.             label1.Text = file;
  66.         }
  67.  
  68.         private void button3_Click(object sender, EventArgs e)
  69.         {
  70.             if (textBox1.Text == "")
  71.                 MessageBox.Show("ERROR!");
  72.             else
  73.             {
  74.                 FileStream fsread = new FileStream(file, FileMode.Open, FileAccess.Read);
  75.                 using (var aesProvider = new AesCryptoServiceProvider())
  76.                 {
  77.                     aesProvider.KeySize = 256;
  78.                     aesProvider.Key = System.Text.Encoding.UTF8.GetBytes(textBox1.Text);
  79.                     aesProvider.Mode = CipherMode.CBC;
  80.                     aesProvider.Padding = PaddingMode.PKCS7;
  81.                     using (var fostream = new FileStream(file + ".decrypt", FileMode.Create,FileAccess.Write))
  82.                     {
  83.                         byte[] buffer=new byte[33];
  84.                         var ms = new FileStream(file, FileMode.Open, FileAccess.Read);
  85.                         ms.Read(buffer, 0, 16);
  86.                         aesProvider.IV=buffer;
  87.                         var aesDecryptor = aesProvider.CreateDecryptor(aesProvider.Key, aesProvider.IV);
  88.                         using (CryptoStream cs = new CryptoStream(fostream, aesDecryptor, CryptoStreamMode.Write))
  89.                         {
  90.                             byte[] bytearrayinput = new byte[fsread.Length - 17];
  91.                             fsread.Read(bytearrayinput, 17, bytearrayinput.Length);
  92.                             cs.Write(bytearrayinput, 0, bytearrayinput.Length);
  93.                             cs.Close();
  94.                             fsread.Close();
  95.                             fostream.Close();
  96.  
  97.                         }
  98.                     }
  99.                    
  100.                 }
  101.             }
  102.         }
  103.     }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment