Пример #1
0
        public void EncodingTest()
        {
            // Base information
            VigenereCipher classObject = new VigenereCipher("јЅ¬√ƒ≈®∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёя");
            string         codePhrase  = "скорпион";


            // Single word decryption test (without characters)
            string firstDecodedStringWithOneWord    = "ѕоздравл¤ю";
            string expectedStringAfterFirstEncoding = "Ѕщцфаирщри";

            var result = classObject.Encrypt(firstDecodedStringWithOneWord, codePhrase);

            Assert.AreEqual(result, expectedStringAfterFirstEncoding, $"Test 1 (one word): Encryption is incorrect\n\nExpected value: {expectedStringAfterFirstEncoding}\nLenth of text: {expectedStringAfterFirstEncoding.Length}\n\nReturned value: {result}\nLenth of text: {result.Length}");
            var resultWithUpperPhrase = classObject.Encrypt(firstDecodedStringWithOneWord, codePhrase.ToUpper());

            Assert.AreEqual(resultWithUpperPhrase, expectedStringAfterFirstEncoding, $"Uppercase translation caused an error in test 1 (with one word)\n\nExpected value: {expectedStringAfterFirstEncoding}\nLenth of text: {expectedStringAfterFirstEncoding.Length}\n\nReturned value: {resultWithUpperPhrase}\nLenth of text: {resultWithUpperPhrase.Length}");


            // Single string decryption test with characters    ',' '!' ' '
            string secondDecodedStringWithCharacters = "ѕоздравл¤ю, ты получил исходный текст!!! ";
            string expectedStringAfterSecondEncoding = "Ѕщцфаирщри, бл ¤чъбиуъ щбюэс¤Єш гфуаа!!! ";

            result = classObject.Encrypt(secondDecodedStringWithCharacters, codePhrase);
            Assert.AreEqual(result, expectedStringAfterSecondEncoding, $"Test 2 (string with characters): Encryption is incorrect\n\nExpected value: {expectedStringAfterSecondEncoding}\nLenth of text: {expectedStringAfterSecondEncoding.Length}\n\nReturned value: {result}\nLenth of text: {result.Length}");
            resultWithUpperPhrase = classObject.Encrypt(secondDecodedStringWithCharacters, codePhrase.ToUpper());
            Assert.AreEqual(resultWithUpperPhrase, expectedStringAfterSecondEncoding, $"Uppercase translation caused an error in test 2 (string with characters)\n\nExpected value: {expectedStringAfterSecondEncoding}\nLenth of text: {expectedStringAfterSecondEncoding.Length}\n\nReturned value: {resultWithUpperPhrase}\nLenth of text: {resultWithUpperPhrase.Length}");
        }
Пример #2
0
        public override DecodedMessage Create()
        {
            ICipher vigenere = new VigenereCipher();
            string  decoded  = vigenere.Decrypt(text, key);

            return(new VigenereDecodedMessage(decoded));
        }
Пример #3
0
        public void DecryptNoKeyTest()
        {
            VigenereCipher myCipher = new VigenereCipher();

            TestCtor(myCipher);
            myCipher.Decrypt(Convert.ToBase64String(Encoding.ASCII.GetBytes(TEST_STR)));
        }
Пример #4
0
        public void EncryptNoKeyTest()
        {
            VigenereCipher myCipher = new VigenereCipher();

            TestCtor(myCipher);
            myCipher.Encrypt(TEST_STR);
        }
Пример #5
0
        void Vigenere(bool encrypt, string inputText, string key)
        {
            if (key.Length == 0)
            {
                string errorMsg;
                if (Language == "cs")
                {
                    errorMsg = "Klíč musí obsahovat alespoň 1 znak.";
                }
                else
                {
                    errorMsg = "Key must contain at least 1 character.";
                }

                throw new Exception(errorMsg);
            }

            inputText = RemoveCzech(inputText);
            InputText = inputText;

            key = NormaliseKey(key);
            Key = key;

            if (encrypt)
            {
                Output = VigenereCipher.Encrypt(inputText, key);
            }
            else
            {
                Output = VigenereCipher.Decrypt(inputText, key);
            }
        }
        static void Main(string[] args)
        {
            // TODO: Check that plain_message contains only characters
            if (args.Length == 0) {
                PrintUsage("OTP length is required.");
                return;
            }

            int length;
            if (!int.TryParse(args[0], out length) || length > MAX_OTP_LENGTH) {
                PrintUsage(String.Format("Length argument is invalid. Max length is {0:N0}.", MAX_OTP_LENGTH));
                return;
            }

            var otpGenerator = new OtpGenerator();
            string otp = otpGenerator.Generate(length);

            if (args.Length >= 2) {
                var cipher = new VigenereCipher();
                string plainMessage = args[1];
                Console.WriteLine("{0} {1}", otp, cipher.Encrypt(otp, plainMessage));
            } else {
                Console.WriteLine(otp);
            }
        }
Пример #7
0
        public void Vigener_encrypt()
        {
            string[] variables = new string[2];
            int      i         = 0;

            Console.Clear();
            using (StreamReader sr = new StreamReader("Vigener_Dec_Variables.txt"))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    variables[i] = line;
                    i++;
                }
            }

            VigenereCipher vcipher = new VigenereCipher();

            Console.WriteLine("Decrypted: " + variables[0]);
            string encryptedtext = vcipher.Encrypt(variables[1], variables[0]);

            Console.WriteLine("Encrypted: " + encryptedtext);

            using (StreamWriter writer = new StreamWriter("Vigener_Enc_Variables.txt"))
            {
                writer.WriteLine(encryptedtext);
                writer.WriteLine(variables[1]);
            }
            Console.WriteLine("Press Any Button to Back");
            Console.ReadKey();
            Vigener_start();
        }
Пример #8
0
        /// <summary>
        /// Шифр Виженера и его варианты
        /// </summary>
        public static void VigenereCipherTest()
        {
            Console.WriteLine("3. Шифр Виженера и его варианты");

            // Простой шифр Виженера
            Console.WriteLine("\nПростой шифр Виженера");
            Console.WriteLine("Пример работы программы");
            cryptogram = "N  O  W  I  S  T  H  E";
            Console.WriteLine("Текст: " + cryptogram);
            Console.WriteLine("Ключ: " + "GAH");
            vigenereCipher = new VigenereCipher("GAH");
            encryptText    = vigenereCipher.Encrypt(cryptogram);
            Console.WriteLine("Зашифрованый текст: " + encryptText);
            decryptText = vigenereCipher.Decrypt(encryptText);
            Console.WriteLine("Расшифрованый текст: " + decryptText);

            // Составной шифр Виженера
            Console.WriteLine("\nСоставной шифр Виженера");
            Console.WriteLine("Пример работы программы");
            cryptogram = "My name is Dima";
            Console.WriteLine("Текст: " + cryptogram);
            Console.WriteLine("Ключ: " + string.Join(" ", "azaza", "dima"));
            vigenereCipher = new VigenereCipher("azaza", "dima");
            encryptText    = vigenereCipher.Encrypt(cryptogram);
            Console.WriteLine("Зашифрованый текст: " + encryptText);
            decryptText = vigenereCipher.Decrypt(encryptText);
            Console.WriteLine("Расшифрованый текст: " + decryptText);

            // Шифр Виженера с перемешанным один раз алфавитом
            Console.WriteLine("\nШифр Виженера с перемешанным один раз алфавитом");

            // Прямой вариант
            Console.WriteLine("\nПрямой вариант");
            Console.WriteLine("Пример работы программы");
            cryptogram = "My name is Dima";
            Console.WriteLine("Текст: " + cryptogram);
            Console.WriteLine("Ключ: " + string.Join(" ", "azaza", "dima"));
            vigenereCipher = new VigenereCipher(new[] { "azaza", "dima" }, VigenereCipherType.Straight);
            encryptText    = vigenereCipher.Encrypt(cryptogram);
            Console.WriteLine("Зашифрованый текст: " + encryptText);
            decryptText = vigenereCipher.Decrypt(encryptText);
            Console.WriteLine("Расшифрованый текст: " + decryptText);

            // Обратный вариант
            Console.WriteLine("\nОбратный вариант");
            Console.WriteLine("Пример работы программы");
            cryptogram = "My name is Dima";
            Console.WriteLine("Текст: " + cryptogram);
            var k = new[] { "azaza", "dima" };

            Console.WriteLine("Ключ: " + string.Join(" ", k));
            vigenereCipher = new VigenereCipher(k, VigenereCipherType.Reverse);
            encryptText    = vigenereCipher.Encrypt(cryptogram);
            Console.WriteLine("Зашифрованый текст: " + encryptText);
            decryptText = vigenereCipher.Decrypt(encryptText);
            Console.WriteLine("Расшифрованый текст: " + decryptText);

            Console.WriteLine("\n");
        }
Пример #9
0
        public void EncryptFileTest()
        {
            VigenereCipher cipher = new VigenereCipher();

            cipher.GenKey();
            cipher.Encrypt(BASE_FILE, ENC_FILE);
            TestFileEnc();
        }
Пример #10
0
        public void EncryptStrTest()
        {
            VigenereCipher myCipher = new VigenereCipher();

            TestCtor(myCipher);
            myCipher.GenKey();
            TestStrEnc(myCipher, myCipher.Encrypt(TEST_STR));
        }
Пример #11
0
        public void GenKeyTest()
        {
            VigenereCipher masc = new VigenereCipher();

            TestCtor(masc);
            masc.GenKey();
            Assert.IsNotNull(masc.GetKey(), "key was not intialized");
        }
Пример #12
0
        public void TestLogicWithWrongKey()
        {
            var vigenereCipher = new VigenereCipher();

            var ex = Assert.Throws <Exception>(() => vigenereCipher.Encrypt(new string[] { "stub" }, "wr0ng"));

            Assert.Equal("Key can only contain letter", ex.Message);
        }
Пример #13
0
        static void Main(String[] args)
        {
            ILanguageService languageService = new LanguageService(new UnitOfWork("Data Source=I_SER_I;Initial Catalog=Languages;Integrated Security=True"));
            var            language          = languageService.GetLanguage(570);
            VigenereCipher vigenereCipher    = new VigenereCipher(language, "пидор");

            Console.WriteLine(vigenereCipher.Encrypt("Робокопи"));
        }
Пример #14
0
        public MainWindow()
        {
            InitializeComponent();
            DataContext = new VigenereCipherViewModel();
            string tmp = VigenereCipher.EncryptMessage("ATTACKATDAWN", "LEMONLEMONLE");

            VigenereCipher.DecryptMessage(tmp, "LEMONLEMONLE");
            VigenereCipher.test();
        }
Пример #15
0
        public void VigenereTestDecode()
        {
            string  inputData    = "Rcmuc h ew rka cmuzgnb";
            string  keyWord      = "click";
            string  expectedData = "Press f to pay respect";
            ICipher userData     = new VigenereCipher();
            string  actualData   = userData.Decode(inputData, keyWord);

            Assert.AreEqual(expectedData, actualData);
        }
Пример #16
0
        public void EncryptEmptinessTest()
        {
            // Arrange
            VigenereCipher cipher = new VigenereCipher();

            // Act - no test

            // Assert
            Assert.NotNull(cipher);
        }
        public void VigenereCipherTest()
        {
            int time = 100;

            for (int i = 0; i < time; i++)
            {
                var plain    = RandomHelper.GetCharList();
                var vigenere = new VigenereCipher(RandomHelper.GetVigenereKey());
                Assert.AreEqual(plain, vigenere.Decrypt(vigenere.Encrypt(plain)));
            }
        }
 public void DecipherNullStringExceptionTest()
 {
     try
     {
         VigenereCipher.Decipher(null, "скорпион");
     }
     catch (Exception e)
     {
         Assert.AreEqual(e.Message, "Введите исходный текст");
     }
 }
Пример #19
0
        public void SetKeyTest()
        {
            VigenereCipher encryptorOne = new VigenereCipher();
            VigenereCipher encryptorTwo = new VigenereCipher();

            TestCtor(encryptorOne);
            TestCtor(encryptorTwo);
            encryptorTwo.GenKey();
            encryptorOne.SetKey(encryptorTwo.GetKey());
            CompareKeys(encryptorTwo.GetKey(), encryptorOne.GetKey());
        }
 public void EncipherEmptyStringExceptionTest()
 {
     try
     {
         VigenereCipher.Encipher(string.Empty, "скорпион");
     }
     catch (Exception e)
     {
         Assert.AreEqual(e.Message, "Введите исходный текст");
     }
 }
Пример #21
0
        public void DecryptStrTest()
        {
            VigenereCipher myCipher = new VigenereCipher();

            TestCtor(myCipher);
            myCipher.GenKey();
            string encStr = myCipher.Encrypt(TEST_STR);

            TestStrEnc(myCipher, encStr);
            TestStrDec(encStr, myCipher.Decrypt(encStr));
        }
Пример #22
0
        public void TestEncrypt()
        {
            var vigenereCipher = new VigenereCipher();

            string[] elements = new string[] { "WORD", "StriNg", "result", "cipher test", "ReSult Test" };
            string   key      = "key";

            IEnumerable <string> result = vigenereCipher.Encrypt(elements, key);

            Assert.Equal(result, new string[] { "GSPN", "CxpsRe", "biqepr", "mmnrip diqd", "BiQepr Diqd" });
        }
Пример #23
0
        public void Encrypt_IsCorrect_RusOnly()
        {
            //Arrange
            string expected = "Явкощн оеэт ф сёёрй о гуобих съхсзу мныф бсча";

            //Act
            string result = VigenereCipher.Encrypt("Позови меня с собой я пройду сквозь злые ночи", "ПуГаЧеВа");

            //Assert
            Assert.AreEqual(expected, result);
        }
Пример #24
0
        public void Decrypt_IsCorrect_AllChars()
        {
            //Arrange
            string expected = "поздравляю, ты получил исходный текст!!! в принципе понять, что тут используется шифр виженера не особо трудно, основная подсказка заключается именно в наличии ключа у этого шифра! в данной задаче особый интерес составляет то, как вы реализуете именно сам процесс расшифровки.теперь дело осталось за малым, доделать программу до логического конца, выполнить все условия задания и опубликовать свою работу! молодец, это были достаточно трудные и интересные два с половиной месяца, но впереди нас ждет еще множество открытий, и я надеюсь общих свершений! от лица компании FirstLineSoftware и университета итмо, я рад поздравить тебя с официальным окончанием наших курсов с# для начинающих! мы хотим пожелать успехов в дальнейшем погружении в мир ит и программирования с использованием стека технологий .Net, море терпения и интересных задач!";

            //Act
            string result = VigenereCipher.Decrypt("бщцфаирщри, бл ячъбиуъ щбюэсяёш гфуаа!!! у ъящэячэц ъэюоык, едщ бдв саэацкшгнбяр гчеа кчфцшубп цу ьгщпя вщвсящ, эвэчрысй юяуъщнщхо шпуъликугбз чъцшья с цощъвчщ ъфмес ю лгюлэ ёъяяр! с моыящш шпмоец щаярдш цяэубфъ аьгэотызуа дщ, щръ кй юцкъщчьуац уыхэцэ ясч юбюяуяг ыовзсгюамщщ.внютвж тхыч эядкъябе цн юкъль, мэсццогл шяьфыоэьь ть эщсщжнашанэ ыюцен, уёюяыцчан мах гъъьуун шпмоыъй ч яяьпщъхэтпык яущм бпйэае! чэьюмуд, оээ скфч саьбрвчёыа эядуцйт ъ уьгфщуяяёу фси а эацэтшцэч юпапёи, ьь уъубфмч ысь хффы ужц чьяцнааущ эгъщйаъф, ч п эиттпьк ярвчг гмубзньцы! щб ьшяо шачюрэсч FirstLineSoftware ц ешчтфщацдпбр шыыь, р ыоф ячцсвкрщве бттй а ядсецсцкюкх эшашёрэсуъ якжще увюгщр в# уфн ысвчюпжзцж! чй ёюычъ бщххыибй еьюхечр п хкъмэншёцч юятщвфцшчщ с хчю ъэ ч аачсюсчыщачрняун в шъюьэжцясиьццч агфуо ацаьяычсцы .Net, чэбф ыуюбпьщо с чыдпяхбцйг щктрж!", "скорпион");

            //Assert
            Assert.AreEqual(expected, result);
        }
Пример #25
0
        private void DecryptionViginereCipher()
        {
            var cipher = new VigenereCipher {
                Key = KeyTextBox.Text, DifKey = false
            };

            if (!cipher.Error)
            {
                PlainTextBox.Text = cipher.Decryption(CipherTextBox.Text);
            }
        }
Пример #26
0
        private void EncryptVigenereCipher()
        {
            var cipher = new VigenereCipher {
                Key = KeyTextBox.Text, DifKey = false
            };

            if (!cipher.Error)
            {
                CipherTextBox.Text = cipher.Encryption(PlainTextBox.Text);
            }
        }
Пример #27
0
        public void VigenereEncryptValidInputWithSpace()
        {
            // Arrange
            VigenereCipher cipher   = new VigenereCipher();
            string         input    = "asdf test zqok ASDF asDFZWsadasdDSFertfdvXZ";
            string         expected = "kgwp hxch sacd KGWP olNTSGgtnolnRLPskdtwfLS";
            // Act
            string actual = cipher.Encrypt(input);

            // Assert
            Assert.AreEqual(expected, actual);
        }
Пример #28
0
    static void Main(string[] args)
    {
        //передаем в конструктор класса буквы русского алфавита
        var cipher        = new VigenereCipher("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ");
        var inputText     = "Шифрование".ToUpper();
        var password      = "******".ToUpper();
        var encryptedText = cipher.Encrypt(inputText, password);

        Console.WriteLine("Зашифрованное сообщение: {0}", encryptedText);
        Console.WriteLine("Расшифрованное сообщение: {0}", cipher.Decrypt(encryptedText, password));
        Console.ReadLine();
    }
Пример #29
0
        public void VigenereDecryptValidInput()
        {
            // Arrange
            VigenereCipher cipher   = new VigenereCipher();
            string         input    = "ZILJSD";
            string         expected = "PUSZEK";
            // Act
            string actual = cipher.Decrypt(input);

            // Assert
            Assert.AreEqual(expected, actual);
        }
Пример #30
0
        public void EncryptRus_string_key_encryptStringReturned()
        {
            string x        = "поздравляю, ты получил исходный текст!!!";
            string y        = "скорпион";
            string expected = "бщцфаирщри, бл ячъбиуъ щбюэсяёш гфуаа!!!";
            //act
            VigenereCipher a      = new VigenereCipher(true);
            string         actual = a.Encrypt(x, y);

            //assert
            Assert.AreEqual(expected, actual);
        }
Пример #31
0
        public void VigenereDecryptValidInputWithSpace()
        {
            // Arrange
            VigenereCipher cipher   = new VigenereCipher();
            string         input    = "QWErTy aSdfgHujIIkolP Zx CVCVBnnmMM";
            string         expected = "GILhFf qEkvsOkvPYwvbB Gn OCSHIdztCY";
            // Act
            string actual = cipher.Decrypt(input);

            // Assert
            Assert.AreEqual(expected, actual);
        }
 public void SetUpTests()
 {
     cipher = new VigenereCipher();
 }