public void DecryptNoKeyTest() { VigenereCipher myCipher = new VigenereCipher(); TestCtor(myCipher); myCipher.Decrypt(Convert.ToBase64String(Encoding.ASCII.GetBytes(TEST_STR))); }
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); } }
public override DecodedMessage Create() { ICipher vigenere = new VigenereCipher(); string decoded = vigenere.Decrypt(text, key); return(new VigenereDecodedMessage(decoded)); }
/// <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"); }
public void Vigener_Decrypt() { VigenereCipher vcipher = new VigenereCipher(); string[] variables = new string[2]; int i = 0; string key; Console.Clear(); using (StreamReader sr = new StreamReader("Vigener_Enc_Variables.txt")) { string line; while ((line = sr.ReadLine()) != null) { variables[i] = line; i++; } } Console.WriteLine("New or Old key"); Console.WriteLine("1.Stantard"); Console.WriteLine("2.New"); ConsoleKeyInfo button = Console.ReadKey(); switch (button.Key) { case ConsoleKey.D1: Console.Clear(); Console.WriteLine("Encrypted: " + variables[0]); Console.WriteLine("Decrypted: " + vcipher.Decrypt(variables[1], variables[0])); break; case ConsoleKey.D2: Console.Clear(); Console.WriteLine("Wprowadz nowy klucz"); Console.WriteLine("Implement Key"); key = Console.ReadLine(); Console.WriteLine("Encrypted: " + variables[0]); Console.WriteLine("Decrypted: " + vcipher.Decrypt(variables[0], key)); break; } Console.WriteLine("Press Any Button to Back"); Console.ReadKey(); Vigener_start(); }
private void ButtonDecrypt_Click(object sender, EventArgs e) { if (textBoxDecryptOriginal.TextLength == 0) { return; } var decrypt = chiper.Decrypt(textBoxDecryptOriginal.Text, textBoxKey.Text); textBoxDecrypt.Text = decrypt; }
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 Decrypt_IsCorrect_RusOnly() { //Arrange string expected = "Позови меня с собой я пройду сквозь злые ночи"; //Act string result = VigenereCipher.Decrypt("Явкощн оеэт ф сёёрй о гуобих съхсзу мныф бсча", "ПуГаЧеВа"); //Assert Assert.AreEqual(expected, result); }
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)); }
public void Decrypt_IsCorrect_AllChars() { //Arrange string expected = "поздравляю, ты получил исходный текст!!! в принципе понять, что тут используется шифр виженера не особо трудно, основная подсказка заключается именно в наличии ключа у этого шифра! в данной задаче особый интерес составляет то, как вы реализуете именно сам процесс расшифровки.теперь дело осталось за малым, доделать программу до логического конца, выполнить все условия задания и опубликовать свою работу! молодец, это были достаточно трудные и интересные два с половиной месяца, но впереди нас ждет еще множество открытий, и я надеюсь общих свершений! от лица компании FirstLineSoftware и университета итмо, я рад поздравить тебя с официальным окончанием наших курсов с# для начинающих! мы хотим пожелать успехов в дальнейшем погружении в мир ит и программирования с использованием стека технологий .Net, море терпения и интересных задач!"; //Act string result = VigenereCipher.Decrypt("бщцфаирщри, бл ячъбиуъ щбюэсяёш гфуаа!!! у ъящэячэц ъэюоык, едщ бдв саэацкшгнбяр гчеа кчфцшубп цу ьгщпя вщвсящ, эвэчрысй юяуъщнщхо шпуъликугбз чъцшья с цощъвчщ ъфмес ю лгюлэ ёъяяр! с моыящш шпмоец щаярдш цяэубфъ аьгэотызуа дщ, щръ кй юцкъщчьуац уыхэцэ ясч юбюяуяг ыовзсгюамщщ.внютвж тхыч эядкъябе цн юкъль, мэсццогл шяьфыоэьь ть эщсщжнашанэ ыюцен, уёюяыцчан мах гъъьуун шпмоыъй ч яяьпщъхэтпык яущм бпйэае! чэьюмуд, оээ скфч саьбрвчёыа эядуцйт ъ уьгфщуяяёу фси а эацэтшцэч юпапёи, ьь уъубфмч ысь хффы ужц чьяцнааущ эгъщйаъф, ч п эиттпьк ярвчг гмубзньцы! щб ьшяо шачюрэсч FirstLineSoftware ц ешчтфщацдпбр шыыь, р ыоф ячцсвкрщве бттй а ядсецсцкюкх эшашёрэсуъ якжще увюгщр в# уфн ысвчюпжзцж! чй ёюычъ бщххыибй еьюхечр п хкъмэншёцч юятщвфцшчщ с хчю ъэ ч аачсюсчыщачрняун в шъюьэжцясиьццч агфуо ацаьяычсцы .Net, чэбф ыуюбпьщо с чыдпяхбцйг щктрж!", "скорпион"); //Assert Assert.AreEqual(expected, result); }
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 TestDecrypt() { var vigenereCipher = new VigenereCipher(); string[] elements = new string[] { "GSPN", "CxpsRe", "biqepr", "mmnrip diqd", "BiQepr Diqd" }; string key = "key"; IEnumerable <string> result = vigenereCipher.Decrypt(elements, key); Assert.Equal(result, new string[] { "WORD", "StriNg", "result", "cipher test", "ReSult Test" }); }
public void DecryptFileTest() { VigenereCipher cipher = new VigenereCipher(); System.IO.File.Exists(ENC_FILE); System.IO.File.Exists(DEC_FILE); cipher.GenKey(); cipher.Encrypt(BASE_FILE, ENC_FILE); TestFileEnc(); cipher.Decrypt(ENC_FILE, DEC_FILE); TestFileDec(); }
public IActionResult DecryptMessage([FromBody] VigenereModel message) { var encryptedText = message.Message; var alphabet = message.Alphabet; var password = message.Password; VigenereCipher cipher = new VigenereCipher(alphabet); message.Message = cipher.Decrypt(encryptedText, password); return(Json(message)); }
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); }
public void DecryptRus_string_key_encryptStringReturned() { //arrange string x = "бщцфаирщри, бл ячъбиуъ щбюэсяёш гфуаа!!!"; string y = "скорпион"; string expected = "поздравляю, ты получил исходный текст!!!"; //act VigenereCipher a = new VigenereCipher(true); string actual = a.Decrypt(x, y); //assert Assert.AreEqual(expected, actual); }
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(); }
static void Main(string[] args) { var cipher = new VigenereCipher(); Console.Write("Введите текст: "); var inputText = Console.ReadLine().ToUpper(); Console.Write("Введите ключ: "); var key = Console.ReadLine().ToUpper(); var encryptedText = cipher.Encrypt(inputText, key); Console.WriteLine("Зашифрованное сообщение: {0}", encryptedText); Console.WriteLine("Расшифрованное сообщение: {0}", cipher.Decrypt(encryptedText, key)); Console.ReadLine(); }
static void Main(string[] args) { var cipher = new VigenereCipher(); Console.Write("Enter your text: "); var inputText = Console.ReadLine().ToUpper(); Console.Write("Enter your keyword: "); var password = Console.ReadLine().ToUpper(); var encryptedText = cipher.Encrypt(inputText, password); Console.WriteLine("Decoding: {0}", encryptedText); Console.WriteLine("Encode: {0}", cipher.Decrypt(encryptedText, password)); Console.ReadLine(); }
public void DecryptTest() { const string text = "lxfopvefrnhr"; const string key = "lemon"; const string expected = "attackatdawn"; var result = cipher.Decrypt(text, key); Assert.AreEqual(expected, result); }
public static string VigenereCipher(string text, string key, VigenereCipherType vigenereCipherType, CryptType cryptType) { string result = string.Empty; vigenereCipher = new VigenereCipher(key.Split(' '), vigenereCipherType); switch (cryptType) { case CryptType.Encrypt: result = vigenereCipher.Encrypt(text); break; case CryptType.Decrypt: result = vigenereCipher.Decrypt(text); break; } return result; }
public void OnPostText(string text, string key, bool operation) { try { if (text == null) { throw new Exception("Уважаемый, переводить нечего. Текста нет."); } if (key == null) { throw new Exception("Уважаемый, вы не ввели ключ. Не надо так."); } if (key.ToLower().Any(x => !Char.IsLetter(x) || !defaultAlphabet.Contains(x))) { throw new Exception("Уважаемый, в ключе могут быть только русские буквы."); } ErrorMessage = null; if (TempDocumentText != null) { text = TempDocumentText; Text = TempDocumentText; TempDocumentText = null; } var cipher = new VigenereCipher(text, key); Operation = operation; if (Operation) { Result = cipher.Encrypt(); } else { Result = cipher.Decrypt(); } Text = text; Key = key; } catch (Exception x) { ErrorMessage = x.Message; Text = text; Result = ""; } }
public IActionResult VigenereDecrypt([FromBody] VigenereCipherViewModel viewModel) { VigenereCipher cipher = new VigenereCipher (viewModel.Key, Alphabets.GetAlphabet((Alphabets.AlphabetType)viewModel.AlphabetType)); string decrypted = ""; try { decrypted = cipher.Decrypt(viewModel.Message); } catch (Exception e) { return(BadRequest(new { Result = false, Message = e.Message })); } return(Json(decrypted)); }
public void GetText(string text, string password) { VigenereCipher cipher = new VigenereCipher("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"); if (text != null && password != null) { var encryptedText = cipher.Decrypt(text.ToUpper(), password.ToUpper()); NonEncryptedText.Text = encryptedText; } else if (text == null) { throw new NoTextException(); } else if (password == null) { throw new NoPasswordException(); } else { throw new Exception(); } }
static void Main(string[] args) { Console.WriteLine("Choose alghorithm\n" + "1. RailFence\n" + "2. Transposition A\n" + "3. Transposition B\n" + "4. Transposition C\n" + "5. Caesar\n" + "6. Vigenere\n" + "7. Exit\n"); Console.WriteLine("Choose: "); int option = ReadInt(); string wordToEncrypt = ""; string encryptedWord = ""; string decryptedWord = ""; Console.WriteLine("Enter your word: "); wordToEncrypt = Console.ReadLine(); ICipher cs = new RailFenceCipher(0); switch (option) { case 1: // RailFence { Console.WriteLine("Give key [Integer]: "); int key = ReadInt(); cs = new RailFenceCipher(key); Console.WriteLine("Using RailFence Cipher"); Console.WriteLine("\nWord given: " + wordToEncrypt); encryptedWord = cs.Encrypt(wordToEncrypt); Console.WriteLine("Encrypted word: " + encryptedWord); Console.WriteLine("Give word to decrypt: "); wordToEncrypt = Console.ReadLine(); Console.WriteLine("Give key [Integer]: "); key = ReadInt(); cs = new RailFenceCipher(key); decryptedWord = cs.Decrypt(wordToEncrypt); Console.WriteLine("Decrypted word: " + decryptedWord); } break; case 2: // Transposition A { cs = new TranspositionCipherA(); Console.WriteLine("Using Transposition A Cipher"); Console.WriteLine("\nWord given: " + wordToEncrypt); encryptedWord = cs.Encrypt(wordToEncrypt); Console.WriteLine("Encrypted word: " + encryptedWord); Console.WriteLine("Give word to decrypt: "); wordToEncrypt = Console.ReadLine(); decryptedWord = cs.Decrypt(wordToEncrypt); Console.WriteLine("Decrypted word: " + decryptedWord); } break; case 3: // Transposition B { Console.WriteLine("Give key [String, Letters only]: "); string key = Console.ReadLine(); cs = new TranspositionCipherB(key); Console.WriteLine("Using Transposition B Cipher"); Console.WriteLine("\nWord given: " + wordToEncrypt); encryptedWord = cs.Encrypt(wordToEncrypt); Console.WriteLine("Encrypted word: " + encryptedWord); Console.WriteLine("Give word to decrypt: "); wordToEncrypt = Console.ReadLine(); Console.WriteLine("Give key [String, Letters only]: "); key = Console.ReadLine(); cs = new TranspositionCipherB(key); decryptedWord = cs.Decrypt(wordToEncrypt); Console.WriteLine("Decrypted word: " + decryptedWord); } break; case 4: // Transposition C { Console.WriteLine("Give key [String, Letters only]: "); string key = Console.ReadLine(); cs = new TranspositionCipherC(key); Console.WriteLine("Using Transposition C Cipher"); Console.WriteLine("\nWord given: " + wordToEncrypt); encryptedWord = cs.Encrypt(wordToEncrypt); Console.WriteLine("Encrypted word: " + encryptedWord); Console.WriteLine("Give word to decrypt: "); wordToEncrypt = Console.ReadLine(); Console.WriteLine("Give key [String, Letters only]: "); key = Console.ReadLine(); cs = new TranspositionCipherC(key); decryptedWord = cs.Decrypt(wordToEncrypt); Console.WriteLine("Decrypted word: " + decryptedWord); } break; case 5: // Caesar { Console.WriteLine("Give key 1 [Integer]: "); int key0 = ReadInt(); Console.WriteLine("Give key 2 [Integer]: "); int key1 = ReadInt(); cs = new CaesarCipher(key0, key1); Console.WriteLine("Using Caesar Cipher"); Console.WriteLine("\nWord given: " + wordToEncrypt); encryptedWord = cs.Encrypt(wordToEncrypt); Console.WriteLine("Encrypted word: " + encryptedWord); Console.WriteLine("Give word to decrypt: "); wordToEncrypt = Console.ReadLine(); Console.WriteLine("Give key 1 [Integer]: "); key0 = ReadInt(); Console.WriteLine("Give key 2 [Integer]: "); key1 = ReadInt(); cs = new CaesarCipher(key0, key1); decryptedWord = cs.Decrypt(wordToEncrypt); Console.WriteLine("Decrypted word: " + decryptedWord); } break; case 6: // Vigenere { Console.WriteLine("Give key [String, Letters only]: "); string key = Console.ReadLine(); cs = new VigenereCipher(key); Console.WriteLine("Using Vigenere Cipher"); Console.WriteLine("\nWord given: " + wordToEncrypt); encryptedWord = cs.Encrypt(wordToEncrypt); Console.WriteLine("Encrypted word: " + encryptedWord); Console.WriteLine("Give word to decrypt: "); wordToEncrypt = Console.ReadLine(); Console.WriteLine("Give key [String, Letters only]: "); key = Console.ReadLine(); cs = new VigenereCipher(key); decryptedWord = cs.Decrypt(wordToEncrypt); Console.WriteLine("Decrypted word: " + decryptedWord); } break; case 7: Console.WriteLine("Bye!"); Console.ReadKey(); return; default: Console.WriteLine("Wrong input!"); Console.ReadKey(); return; } Console.ReadKey(); return; }
public bool DecodingJob(VigenereCipher vigenereCipher, string encodeString, string rightPassword, string rightDecodeString) { return(vigenereCipher.Decrypt(encodeString, rightPassword) == rightDecodeString ? true : false); }
public string VigenereCipher_DecryptsCorrectly(string keyword, string encryptedMessage) { return(cipher.Decrypt(keyword, encryptedMessage)); }