コード例 #1
0
ファイル: Main.cs プロジェクト: SimonKonstantinov/kursPasoib
        private static void WorkWithOneFile()
        {
            Console.WriteLine("1 - Зашифровать один файл\n");
            Console.WriteLine("2 - Расшифровать один файл\n");
            string selection = Console.ReadLine();

            string path;

            switch (selection)
            {
            case "1":
                using (Aes myAes = Aes.Create())
                {
                    Console.WriteLine("Введите полное имя файла(с указанием пути)");
                    path = Console.ReadLine();
                    CheckPath.СhekedPathToFile(ref path);

                    byte[] encrypted;
                    try
                    {
                        if (ReadWriteFile.ReadFile(path).Length != 0)
                        {
                            // Encrypt the string to an array of bytes.
                            encrypted = CifherAes.EncryptBytes_Aes(ReadWriteFile.ReadFile(path),
                                                                   myAes.Key,
                                                                   myAes.IV);
                            ReadWriteFile.WriteFile(path, encrypted);
                        }
                        else
                        {
                            Console.WriteLine("файл " + path + "пустой ");
                        }

                        Console.WriteLine("\nВведите полное имя файла для хранения ключа (с указанием пути)");
                        path = Console.ReadLine();
                        CheckPath.СhekedPathToFile(ref path);
                        ReadWriteFile.WriteFile(path, myAes.Key);
                        Console.WriteLine("Ключ  ");
                        foreach (var value in myAes.Key)
                        {
                            Console.Write(value);
                        }
                        Console.WriteLine();

                        Console.WriteLine("Введите полное имя файла для хранения вектора инициаизации  (с указанием пути)");
                        path = Console.ReadLine();
                        CheckPath.СhekedPathToFile(ref path);
                        ReadWriteFile.WriteFile(path, myAes.IV);
                        Console.WriteLine("Вектор инициализации {0}");
                        foreach (var value in myAes.IV)
                        {
                            Console.Write(value);
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                }
                break;

            case "2":
                Console.WriteLine("Введите полное имя файла(с указанием пути)");
                path = Console.ReadLine();
                CheckPath.СhekedPathToFile(ref path);

                byte[] decripted;
                try
                {
                    Console.WriteLine("Введите полное имя ключа(с указанием пути)");
                    string pathToKey = Console.ReadLine();
                    CheckPath.СhekedPathToFile(ref path);
                    Console.WriteLine("Ключ  ");
                    foreach (var value in ReadWriteFile.ReadFile(pathToKey))
                    {
                        Console.Write(value);
                    }

                    Console.WriteLine();

                    Console.WriteLine("Введите полное имя вектора инициализации (с указанием пути)");
                    string pathToIV = Console.ReadLine();
                    CheckPath.СhekedPathToFile(ref path);
                    foreach (var value in ReadWriteFile.ReadFile(pathToIV))
                    {
                        Console.Write(value);
                    }

                    // Encrypt the string to an array of bytes.
                    if (ReadWriteFile.ReadFile(path).Length != 0)
                    {
                        decripted = CifherAes.DecryptBytes_Aes(ReadWriteFile.ReadFile(path),
                                                               ReadWriteFile.ReadFile(pathToKey),
                                                               ReadWriteFile.ReadFile(pathToIV));

                        ReadWriteFile.WriteFile(path, decripted);
                    }
                    else
                    {
                        Console.WriteLine("файл " + path + "пустой. с ним нельзя работать");
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
                break;

            default:
                Console.WriteLine("Вы нажали неизвестную букву");
                break;
            }
        }
コード例 #2
0
ファイル: Main.cs プロジェクト: SimonKonstantinov/kursPasoib
        private static void WorkWithFolderOrDisk()
        {
            Console.Clear();

            Console.WriteLine("1 - Зашифровать папку или диск\n");
            Console.WriteLine("Помниет что ключ и вектор инициализации хранить отдельно от пути объекта шифрации");
            Console.WriteLine("2 - Расшифровать папку или диск\n");
            string selection = Console.ReadLine();

            switch (selection)
            {
            case "1":
                using (Aes myAes = Aes.Create())
                {
                    Console.WriteLine("Введите полное имя папки(с указанием пути)");
                    string path = Console.ReadLine();
                    CheckPath.СhekedPathToDirectory(ref path);

                    byte[] encrypted;
                    try
                    {
                        foreach (var i in GettFiles.LookIn(path))
                        {
                            Console.WriteLine(i);
                            // Encrypt the string to an array of bytes.
                            if (ReadWriteFile.ReadFile(i).Length != 0)
                            {
                                encrypted = CifherAes.EncryptBytes_Aes(ReadWriteFile.ReadFile(i), myAes.Key, myAes.IV);
                                ReadWriteFile.WriteFile(i, encrypted);
                            }
                            else
                            {
                                Console.WriteLine("файл " + i + " пустой");
                            }
                        }
                        GettFiles.LookIn(path).Clear();

                        Console.WriteLine("\nВведите полное имя файла для хранения ключа (с указанием пути)");
                        path = Console.ReadLine();
                        CheckPath.СhekedPathToFile(ref path);

                        ReadWriteFile.WriteFile(path, myAes.Key);
                        Console.WriteLine("Ключ  ");
                        foreach (var value in myAes.Key)
                        {
                            Console.Write(value);
                        }
                        Console.WriteLine();

                        Console.WriteLine("Введите полное имя файла для хранения вектора инициаизации  (с указанием пути)");
                        path = Console.ReadLine();
                        CheckPath.СhekedPathToFile(ref path);
                        ReadWriteFile.WriteFile(path, myAes.IV);
                        Console.WriteLine("Вектор инициализации {0}");
                        foreach (var value in myAes.IV)
                        {
                            Console.Write(value);
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                }

                break;

            case "2":
                using (Aes myAes = Aes.Create())
                {
                    Console.WriteLine("Введите полное имя папки или диска (с указанием пути)");
                    string path = Console.ReadLine();
                    CheckPath.СhekedPathToDirectory(ref path);

                    byte[] decripted;
                    try
                    {
                        Console.WriteLine("Введите полное имя ключа(с указанием пути)");
                        string pathToKey = Console.ReadLine();
                        CheckPath.СhekedPathToFile(ref pathToKey);
                        Console.WriteLine("Ключ  ");
                        foreach (var value in ReadWriteFile.ReadFile(pathToKey))
                        {
                            Console.Write(value);
                        }
                        Console.WriteLine();

                        Console.WriteLine("Введите полное имя вектора инициализации (с указанием пути)");
                        string pathToIV = Console.ReadLine();
                        CheckPath.СhekedPathToFile(ref pathToKey);
                        foreach (var value in ReadWriteFile.ReadFile(pathToIV))
                        {
                            Console.Write(value);
                        }

                        // Encrypt the string to an array of bytes.
                        foreach (var i in GettFiles.LookIn(path))
                        {
                            Console.WriteLine(i);
                            // Encrypt the string to an array of bytes.
                            if (ReadWriteFile.ReadFile(i).Length != 0)
                            {
                                decripted = CifherAes.DecryptBytes_Aes(ReadWriteFile.ReadFile(i),
                                                                       ReadWriteFile.ReadFile(pathToKey),
                                                                       ReadWriteFile.ReadFile(pathToIV));
                                ReadWriteFile.WriteFile(i, decripted);
                            }
                            else
                            {
                                Console.WriteLine("файл пустой,  " + i + " с ним нельзя работать ");
                            }
                        }
                        GettFiles.LookIn(path).Clear();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                }

                break;

            default:
                Console.WriteLine("Вы нажали неизвестную  команду");
                break;
            }
        }