コード例 #1
0
ファイル: CipherTests.cs プロジェクト: maxtex123/CryptoSolver
        public void CipherTest_DecryptResult()
        {
            SubstitutionCipher cipher   = new SubstitutionCipher();
            string             fullPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"testData\dictionary.txt");
            bool read = cipher.ReadDictionary(fullPath);

            bool   solved;
            string result = cipher.Decrypt("pjihzkl dipd hkpi dt hriho zm dri jbtvbka zp klgkep gtbozuv htbbihdle mtb ikhr hkpi", out solved).Trim();

            Assert.That(result.Equals("special test case to check if the program is always working correctly for each case"), Is.True);
        }
コード例 #2
0
ファイル: CipherTests.cs プロジェクト: maxtex123/CryptoSolver
        public void CipherTest_DecryptTrue()
        {
            SubstitutionCipher cipher   = new SubstitutionCipher();
            string             fullPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"testData\dictionary.txt");
            bool read = cipher.ReadDictionary(fullPath);

            bool solved;

            cipher.Decrypt("this is a test", out solved);
            Assert.That(solved, Is.True);
        }
コード例 #3
0
        /// <summary>
        /// Шифры простой и многократной подстановки
        /// </summary>
        public static void SubstitutionCipherTest()
        {
            Console.WriteLine("1. Шифры простой и многократной подстановки");

            // Шифр простой подстановки
            Console.WriteLine("Шифр простой подстановки");
            Console.WriteLine("Пример работы программы");
            cryptogram = "I study at DNU";
            Console.WriteLine("Текст: " + cryptogram);
            substitutionCipher = new SubstitutionCipher();
            encryptText        = substitutionCipher.Encrypt(cryptogram);
            Console.WriteLine("Зашифрованый текст: " + encryptText);
            decryptText = substitutionCipher.Decrypt(encryptText);
            Console.WriteLine("Расшифрованый текст: " + decryptText);

            // Упражнение. Используя перестановку примера, расшифруйте криптограмму:
            Console.WriteLine("Упражнение. Используя перестановку примера, расшифруйте криптограмму: ");
            cryptogram = "MEUSCXZOCXVQM";
            Console.WriteLine(cryptogram);
            Console.WriteLine(substitutionCipher.Decrypt(cryptogram));
            Console.WriteLine();

            // Шифр многократной подстановки
            Console.WriteLine("Шифр многократной подстановки");
            Console.WriteLine("Пример работы программы");
            cryptogram = "INPUT";
            Console.WriteLine("Текст: " + cryptogram);
            int n = 3;

            substitutionCipher = new SubstitutionCipher(n);
            encryptText        = substitutionCipher.Encrypt(cryptogram);
            Console.WriteLine($"Зашифрованый текст при n = {n}: {encryptText}");
            decryptText = substitutionCipher.Decrypt(encryptText);
            Console.WriteLine($"Расшифрованый текст при n = {n}: {decryptText}");

            Console.WriteLine("\n");
        }
コード例 #4
0
        public static string SubstitutionCipher(string text, int n, CryptType cryptType)
        {
            string result = string.Empty;
            substitutionCipher = new SubstitutionCipher(n);
            switch (cryptType)
            {
                case CryptType.Encrypt:
                    result = substitutionCipher.Encrypt(text);
                    break;
                case CryptType.Decrypt:
                    result = substitutionCipher.Decrypt(text);
                    break;
            }

            return result;
        }