Тип работы: Исходник
Рейтинг: 5.0
Автор: Muffin lover
Дата публикации: 08.02.2025
Шифр Цезаря, также известный как шифр сдвига, код Цезаря или сдвиг Цезаря — один из самых простых и наиболее широко известных методов шифрования. Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки со своими генералами. Шаг шифрования, выполняемый шифром Цезаря, часто включается как часть более сложных схем, таких как шифр Виженера, и всё ещё имеет современное приложение в системе ROT13. Как и все моноалфавитные шифры, шифр Цезаря легко взламывается и не имеет почти никакого применения на практике.
Функционал программы
Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите. Например, в шифре со сдвигом вправо на 3, А была бы заменена на Г, Б станет Д, и так далее.
Фрагмент кода
/* кодирование строки "кодом Цезаря" */
/* символы кодируемой строки заменяются на символы из алфавита с позицией, вычисляемой из правила */
/* temp = ( j * n + k ) % s.Length, где j - позиция в алфавите текущего символа, s.Length - длина алфавита */
/* база шифра - параметры, задающие "сдвиг" символов в алфавите при кодировании n = 1, k = 20 */
richTextBox2.Clear();
/* закодированный текст будет сохранен в поток a (файл encode.txt) */
StreamWriter a = new StreamWriter("encode.txt");
/* s - кодируемая строка */
string s = richTextBox1.Text;
/* m - длина алфавита */
m = alf.Length;
/* для каждого символа кодируемой строки */
for (int i = 0; i < s.Length; i++)
/* поиск соответствующего символа в алфавите */
for (int j = 0; j < alf.Length; j++)
{
/* если символ найден */
if (s[i] == alf[j])
{
/* осуществляем сдвиг позиции символа в алфавите */
temp = j * n + k;
/* берем остаток от деления сдвига на длину алфавита */
/* ( чтобы индекс temp не выходил за пределы алфавита ) */
while (temp >= m)
temp -= m;
/* в закодированной строке - символ заменяется на "сдвинутый" */
a.Write(alf[temp]);
richTextBox2.Text += alf[temp];
}
}
a.Close();
Сразу после оплаты Вы сможете скачать работу сдесь или во вкладке мои покупки.
Здесь пока нет отзывов, будьте первым.
Зарегистрируйтесь на StudCrew, чтобы оставить отзыв