Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.22 KB | None | 0 0
  1. using System; using System.Linq; namespace aes256 { class Program { static void Main(string[] args) { if (args.Count() < 3) pomoc(); else { if (args[0] == "-s") szyfrowanie(args[1], args[2]); else if (args[0] == "-d") deszyfrowanie(args[1], args[2]); else pomoc(); } //System.Console.WriteLine(); //System.Console.WriteLine("Naciśnij dowolny klawisz"); //System.Console.ReadKey(); } static void pomoc() { System.Console.WriteLine(); System.Console.WriteLine("Zastosowanie: aes256 -opcja hasło plik"); System.Console.WriteLine(); System.Console.WriteLine("Dostępne opcje:"); System.Console.WriteLine("-s - szyfrowanie"); System.Console.WriteLine("-d - deszyfrowanie"); System.Console.WriteLine(); System.Console.WriteLine("Podczas szyfrowanie powstają dwa pliki wyjściowe:"); System.Console.WriteLine("- nazwa pliku + .aes256"); System.Console.WriteLine("- nazwa pliku + .IV"); System.Console.WriteLine("Oba pliki są niezbędne do odszyfrowania pliku."); System.Console.WriteLine(); System.Console.WriteLine("Podczas deszyfrowania pliku użyj tylko jego oryginalnej nazwy bez rozszerzeń dodanych przez program."); } static void szyfrowanie(string haslo, string plik) { System.Console.WriteLine(); System.Console.WriteLine("Szyfrowanie pliku " + plik); System.Console.WriteLine(); try { byte[] buff = System.IO.File.ReadAllBytes(plik); System.Security.Cryptography.Aes aes = System.Security.Cryptography.AesCryptoServiceProvider.Create(); aes.Key = GetKey(GetBytes(haslo)); aes.GenerateIV(); System.Security.Cryptography.ICryptoTransform encryptor = aes.CreateEncryptor(); buff = encryptor.TransformFinalBlock(buff, 0, buff.Length); System.IO.File.WriteAllBytes(plik + ".aes256", buff); System.IO.File.WriteAllBytes(plik + ".IV", aes.IV); } catch(System.IO.IOException e) { System.Console.WriteLine(e.Message); } catch(System.Security.Cryptography.CryptographicException e) { System.Console.WriteLine(e.Message); } } static void deszyfrowanie(string haslo, string plik) { System.Console.WriteLine(); System.Console.WriteLine("Deszyfrowanie pliku " + plik); System.Console.WriteLine(); try { byte[] buff = System.IO.File.ReadAllBytes(plik + ".aes256"); System.Security.Cryptography.Aes aes = System.Security.Cryptography.AesCryptoServiceProvider.Create(); aes.Key = GetKey(GetBytes(haslo)); aes.IV = System.IO.File.ReadAllBytes(plik + ".IV"); System.Security.Cryptography.ICryptoTransform decryptor = aes.CreateDecryptor(); buff = decryptor.TransformFinalBlock(buff, 0, buff.Length); System.IO.File.WriteAllBytes(plik, buff); } catch(System.IO.IOException e) { System.Console.WriteLine(e.Message); } catch(System.Security.Cryptography.CryptographicException e) { System.Console.WriteLine(e.Message); } } static byte[] GetKey(byte[] key) { System.Security.Cryptography.SHA256 sha = System.Security.Cryptography.SHA256.Create(); sha.TransformFinalBlock(key, 0, key.Length); return sha.Hash; } static private byte[] GetBytes(String str) { char[] chars = str.ToCharArray(); byte[] bytes = new byte[chars.Length * sizeof(char)]; System.Buffer.BlockCopy(chars, 0, bytes, 0, bytes.Length); return bytes; } /* static private String GetString(byte[] bytes) { char[] chars = new char[bytes.Length * sizeof(char)]; System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length); return new String(chars); } */ } }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement