Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/64: Рейтинг темы: голосов - 64, средняя оценка - 4.75
2 / 2 / 3
Регистрация: 22.11.2013
Сообщений: 114

Написание программы шифрования и дешифрования данных шифром Цезаря

17.09.2016, 10:13. Показов 13136. Ответов 9

Студворк — интернет-сервис помощи студентам
Написать код Цезаря для шифрования и дешифрования данных.(В коде Цезаря задан цифровой ключ и этот ключ задает смещение для алфавита). Форма должна содержать: окошко для ввода текста сообщения и окошко для ввода значения ключа. Так же может использоваться в коде такая формула: с=(m+k)mod32, где m,c- номера букв соответственно сообщения и шифра текста; к-ключ шифра. 32-количество символов в использованном для шифра алфавита. (Помнить то что в сообщении могут быть как маленькие та и большие буквы, помнить о пробелах(их можно оставлять можно и не оставлять). Сообщение может быть написано как на английском так и на русском языке.( можно сделать для них разные окошки).
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2016, 10:13
Ответы с готовыми решениями:

Создать приложение шифрования и дешифрования текста шифром Цезаря
Сделать приложение шифрования и дешифрования текста. Пользователь вводит фразу, выводится в зашифрованном виде. Метод цезаря

Реализовать программу шифрования/дешифрования по алгоритму Афинная система подстановки Цезаря
Помагите пожалуйста!)))

Кодирование/декодирование данных шифром Цезаря
Здравствуйте! Помогите, пожалуйста, с решением одной любой из следующих задач! Программирование у меня не профилирующий предмет, и я в нём...

9
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
17.09.2016, 12:10
Реализовать шифр Цезаря
0
2 / 2 / 3
Регистрация: 22.11.2013
Сообщений: 114
18.09.2016, 18:35  [ТС]
Помогите пожалуйста доработать.
1) Нужно что бы Программа различала заглавную и строчную букву.
2) Как прописать дешифрацию.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace _5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            textBox3.Text = "";
            int move = 0;
            string[] array = new string[] { "а", "б", "в",
 "г", "д", "е", "ё", "ж",
"з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с",
"т", "у", "ф", "х",
 "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я" };
            try
            {
                move = Convert.ToInt32(textBox1.Text);
            }
            catch
            {
                MessageBox.Show("Установите шаг шифрования!");
                return;
            }
 
            string[] array2;
            array2 = array.Skip(move).Concat(array.Take(move)).ToArray();
 
            foreach (string element in array2)
            {
 
            }
 
            string text = textBox2.Text;
            foreach (char bykva in text)
            {
                for (int i = 0; i < array.Length; i++)
                {
                    if (bykva.ToString().ToLower() == array[i])
                    {
                        textBox3.Text += array2[i];
                        break;
                    }
                    else
                    {
                        if (bykva.ToString() == " " || bykva.ToString() == "." ||
                        bykva.ToString() == "," || bykva.ToString() == ":" ||
                        bykva.ToString() == ";" || bykva.ToString() == "?" ||
                        bykva.ToString() == "!")
                        {
                            textBox3.Text += " ";
                            break;
                        }
 
                    }
                }
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
       {
 
            textBox3.Text = "";
            int move = 0;
            string[] array = new string[] { "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" };
            try
            {
                move = Convert.ToInt32(textBox1.Text);
            }
            catch
            {
                MessageBox.Show("Установите шаг шифрования!");
                return;
            }
 
            string[] array2;
            array2 = array.Skip(move).Concat(array.Take(move)).ToArray();
 
            foreach (string element in array2)
            {
 
            }
 
            string text = textBox2.Text;
            foreach (char bykva in text)
            {
                for (int i = 0; i < array.Length; i++)
                {
                    if (bykva.ToString().ToLower() == array[i])
                    {
                        textBox3.Text += array2[i];
                        break;
                    }
                    else
                    {
                        if (bykva.ToString() == " " || bykva.ToString() == "." ||
                        bykva.ToString() == "," || bykva.ToString() == ":" ||
                        bykva.ToString() == ";" || bykva.ToString() == "?" ||
                        bykva.ToString() == "!")
                        {
                            textBox3.Text += " ";
                            break;
                        }
                        }
                    }
                }
            }
 
        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
            textBox1.Clear();
            textBox2.Text = "";
            textBox2.Clear();
            textBox3.Text = "";
            textBox3.Clear();
            textBox4.Text = "";
            textBox4.Clear();
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
            textBox1.Clear();
            textBox2.Text = "";
            textBox2.Clear();
            textBox3.Text = "";
            textBox3.Clear();
            textBox4.Text = "";
            textBox4.Clear();
        }
        }
}
0
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
18.09.2016, 18:52
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
       static void Main(string[] args)
        {
            if (args.Length < 2)
            {
                Console.WriteLine("Первый аргумент -ТЕКСТ, второй аргумент -сдвиг");
                Console.ReadKey();
            }
            else
            {
 
                string decoded_text = args[0]; 
                string encrypted_text = " ";
                int shift = Int32.Parse(args[1]);
                char character = '0';
                decoded_text = decoded_text.ToUpper();
 
                char[] alphabet = new char[33] { 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 
                'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я' };
 
                Console.WriteLine("Шифруем текст {0}", decoded_text);       //Display the decoded text
 
                foreach (char c in decoded_text)
                    {
                        character = c;
                        int shift1 = Array.IndexOf(alphabet, character) - shift;
                        if (shift1 <= 0)
                            shift1 = shift1 + 33;
 
                        if (shift1 >= 33)
                            shift1 = shift1 - 33;
                        encrypted_text += alphabet[shift1];
                    }
                Console.WriteLine("\nСдвиг {0},  {1}", shift, encrypted_text);
                Console.ReadKey();                
            }
        }
1
2 / 2 / 3
Регистрация: 22.11.2013
Сообщений: 114
18.09.2016, 19:02  [ТС]
Разъясните пожалуйста что это, и как это прикрепить к моему коду?
0
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
18.09.2016, 19:42
Функция шифрования с английским алфавитом, ее можно использовать в вашей программе
Выше фактически она же но с русским алфавитом

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
      static string CaesarCipher(string decoded_text, int shift)
        {
            string encrypted_text = " ";
            char character = '0';
            decoded_text = decoded_text.ToUpper();
 
            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'};
 
            foreach (char c in decoded_text)
            {
                character = c;
                int shift1 = Array.IndexOf(alphabet, character) - shift;
                if (shift1 <= 0)
                    shift1 = shift1 + 26;
 
                if (shift1 >= 26)
                    shift1 = shift1 - 26;
                encrypted_text += alphabet[shift1];
            }
            return encrypted_text;
        }
1
2 / 2 / 3
Регистрация: 22.11.2013
Сообщений: 114
18.09.2016, 21:38  [ТС]
Ну английский то у меня есть. Мне бы заглавные буквы сделать в том же стиле кода что у меня и дишифрацию((
0
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
18.09.2016, 21:44
нет смысла обрабатывать отдельно прописные, их нужно сразу привести к заглавным

C#
1
decoded_text = decoded_text.ToUpper();
0
2 / 2 / 3
Регистрация: 22.11.2013
Сообщений: 114
19.09.2016, 21:01  [ТС]
(Помнить то что в сообщении могут быть как маленькие та и большие буквы)
К сожалению это условие задачи(( Имена собственные, ФСБ, должны оставаться большими, после дешифрования.

Добавлено через 22 часа 56 минут
Извени, у вас не будет идей как это реализовать?(
0
19.09.2016, 21:50

Не по теме:

не дешифровка, а расшифровка]:->]:->]:->

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.09.2016, 21:50
Помогаю со студенческими работами здесь

Программы шифрования-дешифрования текстового файла
Нужен код для программы по шифрованию и дешифрованию текстового файла с помощью циклической заменой символов. Чтобы можно было ввести...

Нужен пример простенькой программы шифрования/дешифрования текста
Добрый день/добрая ночь! В рамках само изучения qt стал интересовать вопрос шифрации данных, кто может поделится примером простенькой проги...

Нужен пример простенькой программы шифрования/дешифрования текста
Добрый день! В рамках самоизучения C# стал интересовать вопрос шифрации данных. кто может поделится примером простенькой проги...

Программа для шифрования и дешифрования текстовых данных
Помогите пожалуйста, мне нада написать в delphi программу для шифрования и дешифрования текстовых данных с тспользованием симметричных...

Нужны исходники программы шифрования и дешифрования файлов на базе алгоритма ГОСТ 28147-89
у кого есть исходники программы шифрования и дешифрования файлов на базе алгоритма ГОСТ 28147-89 в режиме простой замены и выработки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru