Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Security.Cryptography;
- namespace AES_PRJ
- {
- class AESPRJ
- {
- public static void Main()
- {
- Console.Write("codificacao/decodificacao [c/d]:");
- string modo = Console.ReadLine();
- if (modo == "c") {
- try
- {
- System.Console.Write("Mensagem:");
- string msg = System.Console.ReadLine();
- System.Console.Write("Chave");
- string chave = System.Console.ReadLine();
- Aes defAes = Aes.Create();
- defAes.Key = strtobytearray(chave); //testar
- byte[] codificado = codificar(msg,defAes.Key,defAes.IV);
- Console.Write("codificado: ");
- Console.Write(codificado.ToString());
- }
- catch (Exception Exc)
- {
- Console.WriteLine("Exception: ", Exc.Message);
- }
- }
- else
- if (modo == "d")
- {
- System.Console.Write("cifrado:");
- string msg = System.Console.ReadLine();
- System.Console.Write("cifra");
- string chave = System.Console.ReadLine();
- Aes defAes = Aes.Create();
- defAes.Key = strtobytearray(chave); //testar
- byte[] codificado = strtobytearray(msg);
- string decodificado = decodificar(codificado, defAes.Key, defAes.IV);
- Console.Write("decodificado: ");
- Console.Write(decodificado);
- }
- else
- Console.WriteLine("digite [c] para codificar, ou [d] para decodificar");
- }
- static byte[] codificar(string msg, byte[] chave, byte[] IV)
- {
- MemoryStream mem = null;
- CryptoStream cry = null;
- StreamWriter stw = null;
- Aes defAes = null;
- try
- {
- defAes = Aes.Create();
- defAes.Key = chave;
- defAes.IV = IV;
- ICryptoTransform Encriptador = defAes.CreateEncryptor(defAes.Key, defAes.IV);
- mem = new MemoryStream();
- cry = new CryptoStream(mem, Encriptador, CryptoStreamMode.Write);
- stw = new StreamWriter(cry);
- stw.Write(msg);
- }
- finally
- {
- stw.Close();
- cry.Close();
- mem.Close();
- defAes.Clear();
- }
- return mem.ToArray();
- }
- static string decodificar(byte[] cifrado, byte[] chave, byte[] IV)
- {
- MemoryStream mem = null;
- CryptoStream cry = null;
- StreamReader str = null;
- Aes defAes = null;
- string msg = null;
- try
- {
- defAes = Aes.Create();
- defAes.Key = chave;
- defAes.IV = IV;
- ICryptoTransform decodificador = defAes.CreateDecryptor(defAes.Key, defAes.IV);
- mem = new MemoryStream(cifrado);
- cry = new CryptoStream(mem, decodificador, CryptoStreamMode.Read);
- str = new StreamReader(cry);
- msg = str.ReadToEnd();
- }
- finally
- {
- str.Close();
- cry.Close();
- mem.Close();
- defAes.Clear();
- }
- return msg;
- }
- static byte[] strtobytearray(string plaintext)
- {
- byte[] barray = new byte[plaintext.Length];
- for (int i = 0; i < plaintext.Length; i++)
- {
- barray[i] = (byte)plaintext[i];
- }
- return barray;
- }
- static string bytearraytostr(byte[] barray)
- {
- string str = "";
- if ((barray.Length % 2) != 0)
- {
- Console.WriteLine("cada byte deve ser represetando por 2 caracteres hexadecimais [0~f]");
- }
- else
- {
- for (int i = 0; i < barray.Length; i += 2)
- {
- str = str + ((char)barray[i] + barray[i + 1]);
- }
- }
- return str;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement