Шифр Цезаря - C# (184497)
Формулировка задачи:
Алфавит представляет из себя массив символов и задается методом setAlphabet;
Значение сдвига задается методом setShift, сдвиг алфавита осуществлять вправо;
Шифрование производится в методе encode, если исходная строка содержит символ отсутствующий в алфавите, то символ не кодировать. Метод должен возвращать зашифрованный текст.
public class CesarCipher
{
public char[] Alphabet { private get; set; }
public int Shift { private get; set; }
public string Encode(string plainText)
{
// Реализация
return encoded_text;
}
}
Вот что сделал, помогите плз
public class CesarCipher
{
string encrypt_text = "The quick brown fox jumps over the lazy dog";
int shift = 3;
public char[] Alphabet { private get; set; }
char[] alphabet = new char[26] {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q',
'R','S','T','U','V','W','X','Y','Z'};
public int Shift { private get; set; }
public string Encode(string plainText)
{
// Реализация
return encoded_text;
}
}Решение задачи: «Шифр Цезаря»
textual
Листинг программы
class Program
{
class CaesarCipher
{
public static string Alphabet { get; set; }
public static int Shift { private get; set; }
public static string Encryption(string text )
{
text = text.ToLower();
var res = new StringBuilder();
for (int i = 0; i < text.Length; i++)
for (int j = 0; j < Alphabet.Length; j++)
if (text[i] == Alphabet[j]) res.Append(Alphabet[(j + Shift) % Alphabet.Length]);
return res.ToString();
}
public static string Decryption(string crypt)
{
crypt = crypt.ToLower();
var res = new StringBuilder();
for (int i = 0; i < crypt.Length; i++)
for (int j = 0; j < Alphabet.Length; j++)
if (crypt[i] == Alphabet[j]) res.Append(Alphabet[(j - Shift + Alphabet.Length) % Alphabet.Length]);
return res.ToString();
}
}
static void Main(string[] args)
{
CaesarCipher.Alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
CaesarCipher.Shift = 3;
string text = "текст";
Console.WriteLine("Текст {0}", text);
string crypt = CaesarCipher.Decryption(text);
Console.WriteLine("Шифруем текст: {0}", crypt);
text = " ";
text = CaesarCipher.Encryption(crypt);
Console.WriteLine("Дешифруем текст: {0}", text);
CaesarCipher.Alphabet = "abcdefghijklmnopqrstuvwxyz";
text = "tekst";
Console.WriteLine("Текст {0}", text);
crypt = CaesarCipher.Decryption(text);
Console.WriteLine("Шифруем текст: {0}", crypt);
text = " ";
text = CaesarCipher.Encryption(crypt);
Console.WriteLine("Дешифруем текст: {0}", text);
Console.ReadKey();
}
}