Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
homerager
0 / 0 / 2
Регистрация: 28.11.2013
Сообщений: 15
1

Принцип шифрования Виженера

09.04.2014, 14:22. Просмотров 1874. Ответов 3
Метки нет (Все метки)

возникла вот такая не лепая ошибка в коде, не как не могу решить( Проэкт прикрепил!
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
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;
using System.IO;
using System.Threading.Tasks;
 
namespace Crypt
{
    public partial class Form1 : Form
    {
        public OpenFileDialog openFiles;
        public SaveFileDialog saveFiles;
        private string fileName = "Untitled";
        private bool m_DocumentChanged = false;
        public Form1()
        
        
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "Crypt";
        }
 
        private void Шифрувати_Click(object sender, EventArgs e)
        {
            int add;
            string text = Convert.ToString(richTextBox1.Text);
            char[] open_txt_chars = text.ToCharArray();
            char[] key = text.ToCharArray();
            char[] autokey_chars = new char[open_txt_chars.Length];
            char[] encr_chars text = Convert.ToString(textBox1.Text);<=====вот тут
            
//= new char[open_txt_chars.Length];
            Array.Copy(key, 0, autokey_chars, 0, key.Length);
            Array.Copy(open_txt_chars, 0, autokey_chars, key.Length, autokey_chars.Length - key.Length);
 
        for (int i = 0; i < autokey_chars.Length; i++)
            {
                add = (open_txt_chars[i] + autokey_chars[i]) % 9899;
                encr_chars[i] = (char)add;
            }
 
            text = new string(encr_chars);
            richTextBox2.Text = text.ToString();
        }
 
        private void Дешифрувати_Click(object sender, EventArgs e)
        {
            int subs;
            string text = Convert.ToString(richTextBox1.Text);
            char[] encr_chars = text.ToCharArray();
            char[] decr_chars = new char[encr_chars.Length];
 
            text = Convert.ToString(textBox1.Text);
            char[] key = text.ToCharArray();
 
 
            for (int i = 0; i < encr_chars.Length; )
            {
                for (int j = 0; j < key.Length; j++)
                {
                    if (i == encr_chars.Length)
                        break;
                    subs = ((encr_chars[i] - key[j]) % 9899);
                    decr_chars[i] = (char)subs;
                    key[j] = decr_chars[i];
                    i++;
                }
            }
            text = new string(decr_chars);
            richTextBox2.Text = text.ToString();
 
        }
 
        private void відкритиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFiles = new OpenFileDialog();
            openFiles.Title = "Шифратор";
            openFiles.Filter = "Текстовий файл(*.txt)|*.txt";
            if (openFiles.ShowDialog() == DialogResult.OK)
            {
                richTextBox1.Clear();
                TextReader reader = new StreamReader(openFiles.FileName, Encoding.Default);
                var text = reader.ReadToEnd();
                reader.Close();
                richTextBox1.Text = text;
                fileName = openFiles.FileName;
            }
 
        }
 
        private void зберегтиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MenuFileSaveAs();
        }
 
        private void MenuFileSaveAs()
        {
            try
            {
                saveFiles = new SaveFileDialog();
                saveFiles.Title = "Зберегти";
                saveFiles.Filter = "Текстовий файл(*.txt)|*.txt";
 
                if (saveFiles.ShowDialog() == DialogResult.OK)
                {
                    StreamWriter streamwriter =
                      new System.IO.StreamWriter(saveFiles.FileName, false,
                       System.Text.Encoding.GetEncoding("utf-8"));
                    m_DocumentChanged = false;
                    streamwriter.Write(this.richTextBox1.Text);
                    streamwriter.Close();
                }
                MessageBox.Show("Файл успішно збережено", "Інфо", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            catch (Exception ex) { MessageBox.Show("Помилка, при збереженню файла! " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }
 
        private void richTextBox2_TextChanged(object sender, EventArgs e)
        {
            m_DocumentChanged = true;
        }
 
        private void Очистити_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            richTextBox2.Clear();
            textBox1.Clear();
        }
 
        private void вихідToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
    }
}
0
Вложения
Тип файла: rar Crypt.rar (45.5 Кб, 82 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 14:22
Ответы с готовыми решениями:

Квадрат Виженера
Есть код который заполняет из массива только строки столбцы static string alph = { &quot;A&quot;, &quot;B&quot;,...

Шифр Виженера
Салют(; Написала прогу с реализацией одного метода, описанного на википедии, по формуле все вроде...

Реализовать шифр Виженера
Реализовать шифр Виженера для шифрования и дешифрования данных. (В коде Виженера задан цифровой...

Реализовать алгоритмы шифрования виженера и гаммирования
Вообщем, каким образом возможно это сделать в одной программе? возможно ли сделать чтобы они были...

Шифр Виженера: неверный результат шифрования символов
private static int smesh = (int)'a';//смещение алфавита относительно таблицы юникодов ...

3
nio
5988 / 3395 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.04.2014, 15:20 2
Цитата Сообщение от homerager Посмотреть сообщение
Принцып шифрования винжера
Грамотность позволяет жить легче
шифрования винжера Виженера
http://ru.wikipedia.org/wiki/%D0%A8%...B5%D1%80%D0%B0
0
homerager
0 / 0 / 2
Регистрация: 28.11.2013
Сообщений: 15
09.04.2014, 23:09  [ТС] 3
Сори недосмотрел! Тема еще актуальна.
0
Ev_Hyper
Заблокирован
10.04.2014, 08:41 4
homerager,
C#
1
char[] encr_chars text = Convert.ToString(textBox1.Text);
замените на
C#
1
char[] encr_chars = textBox1.Text.ToCharArray();
0
10.04.2014, 08:41
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2014, 08:41

Организовать процессы шифрования текста шифром Виженера и дешифровки
Я знаю что эта тема обсуждалась, но мне нужно сделать немного подругому &quot;Шифрование сводится к...

Организовать процессы шифрования текста шифром Виженера и дешифровки
Организовать процессы шифрования текста шифром Виженера и дешифровки. Шифрование сводится...

Написать скрипт для шифрования/дешифрования строк алгоритмом Виженера
Привет нужно написать скрипт для шифрования/дешифрования строк алгоритмом Виженера (русские буквы)...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.