Шифрование методами Цезаря и xor совместно
Задача : реализовать Шифрование и дешифровку двумя алгоритмами сразу.
Пример кода шифрования XOR
/// <summary> Шифрование XOR (этот же код является и дешифровщиком, т.к. шифрование симметричное) </summary> /// <param name="text"> Исходный текст </param> /// <param name="key"> Ключ алгоритма </param> public static string Xor(this string text, string key) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < text.Length; i++) sb.Append((char)(text[i] ^ key[(i % key.Length)])); String result = sb.ToString(); return result; }
Пример кода Цезаря
//шифрование текста public static string CaesarEncrypt(this string text, int k) { //добавляем в алфавит маленькие буквы var letterQty = full.Length; var retVal = ""; for (int i = 0; i < text.Length; i++) { var c = text[i]; var index = full.IndexOf(c); if (index < 0) { //если символ не найден, то добавляем его в неизменном виде retVal += c.ToString(); } else { var codeIndex = (letterQty + index + k) % letterQty; retVal += full[codeIndex]; } } return retVal; }
В архиве:
Полный рабочий исходный код проекта с комментриями
Релизовано: Visual Studio 2019, Net.Framework 4.5 (Возможно изменить версию фреймворка на любую подходящую)
Kap