Простое Шифрование Текста, C#

Тема в разделе ".NET - Общие вопросы по языкам", создана пользователем Atamanochka, 14 ноя 2013.

  1. Atamanochka

    Atamanochka New Member

    Репутация:
    0
    Регистрация:
    27 дек 2011
    Сообщения:
    1
    Симпатии:
    0
    Задача состоит в следующем:
    1)Считать текстовую информацию из файла
    2) Зашифровать информацию
    3) Сохранить в файл
    Возникла проблема с шифрованием текста. Зашифровать нужно по этому алгоритму: Bi = (Ai+Ki) mod N
    Где A – Текст
    B – Зашифрованный текст
    К – Ключ
    i – номер символа в тексте
    L – длина исходного текста и зашифрованного текста
    m – длина ключа
    N – Количество символов в алфавите.
    Если m >= L, то
    Bi = (Ai+Ki) mod N – шифрование
    Если m < L, то
    Ключ должен быть продублирован, расширен до длины L
    Т.е. если длинны ключа не хватает на весь текст то он должен повторятся
    Программа зацикливается, точнее зацикливается алгоритм шифрования, при загрузки файл успешно загружается а при нажатии на кнопку шифровать вылетает и пишет "Индекс за пределами массива". Я сначала со строками работала, потом преобразовала в массив символов, все равно ни чего не помогает, не знаю правильно ли, помогите пожалуйста)))
    Вот моя программа:
    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;

    namespace lab1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    string str = ""; //Объявляем переменную, в которую будем записывать текст из файла
    string str2 = ""; //переменная которой будет присваиваться ключ
    //string str3 = "";
    //открываем файл
    private void button1_Click(object sender, EventArgs e)
    {
    if (File.Exists("text.txt"))
    {
    str = File.ReadAllText("text.txt");
    }
    else {
    MessageBox.Show("Файл НЕ существует!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Hand);
    }
    }
    //записсываем в файл
    private void button2_Click(object sender, EventArgs e)
    {
    File.WriteAllText("text.txt", str);
    }
    //кодируем
    private void button3_Click(object sender, EventArgs e)
    {
    char[] array = str.ToCharArray();
    char[] array2 = str2.ToCharArray();
    for (int i = 0; i < array.Length; i++)
    {
    //str = str.ToString() + str2.ToString();
    //str = System.Convert.ToString((str + str2) % 256);
    array = System.Convert.ToChar((array + array2) % 256);
    i=i+1;
    //if (i > str2.Length)
    if (i>array2.Length)
    i = 0;
    }
    str = System.Convert.ToString(array);
    }
    //открываем файл
    private void button4_Click(object sender, EventArgs e)
    {
    if (File.Exists("text.txt"))
    {
    str = File.ReadAllText("text.txt");
    }
    else
    {
    MessageBox.Show("Файл НЕ существует!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Hand);
    }
    }
    //записываем в файл
    private void button6_Click(object sender, EventArgs e)
    {
    File.WriteAllText("text.txt", str);
    }
    //дишифрование
    private void button5_Click(object sender, EventArgs e)
    {
    for (int i = 0; i < str.Length; i++)
    {
    }
    }
    }
    }
     

    Вложения:

    • lab1.rar
      Размер файла:
      38,3 КБ
      Просмотров:
      11
  2. a0z

    a0z Well-Known Member

    Репутация:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    109
    Симпатии:
    0
    if (i>array2.Length)
    i = 0;
     
Загрузка...

Поделиться этой страницей