Программа шифрования текста/файла методом одноразовых блокнотов

Автор работы: Пользователь скрыл имя, 09 Апреля 2013 в 09:51, курсовая работа

Краткое описание

В курсовой работе требуется разработать программу шифрования и дешифрования методом одноразовых блокнотов. К программе предъявляются следующие требования:
- входными данными является произвольный текст или файл;
- возможность шифрования/дешифрования текста или файла;
- возможность генерации случайного текста или файла.

Содержание

Введение 4
1. Разработка алгоритма работы программы 5
2. Кодирование программы 7
3. Проверка и отладка программы 9
4. Оценка результатов работы программы 12
Заключение 13
Список литературы 14
Приложение А 15
Приложение Б 16

Прикрепленные файлы: 1 файл

Курсовая работа.docx

— 553.30 Кб (Скачать документ)

this->label3->Size = System::Drawing::Size(77, 13);

this->label3->TabIndex = 2;

this->label3->Text = L"Длина текста";

this->textBox4->Location = System::Drawing::Point(7, 20);

this->textBox4->Name = L"textBox4";

this->textBox4->Size = System::Drawing::Size(360, 20);

this->textBox4->TabIndex = 1;

this->label4->AutoSize = true;

this->label4->Location = System::Drawing::Point(4, 4);

this->label4->Name = L"label4";

this->label4->Size = System::Drawing::Size(117, 13);

this->label4->TabIndex = 0;

this->label4->Text = L"Генерируемая строка";

this->radioButton2->AutoSize = true;

this->radioButton2->Location = System::Drawing::Point(13, 132);

this->radioButton2->Name = L"radioButton2";

this->radioButton2->Size = System::Drawing::Size(168, 17);

this->radioButton2->TabIndex = 3;

this->radioButton2->TabStop = true;

this->radioButton2->Text = L"Создание текстовой строки";

this->radioButton2->UseVisualStyleBackColor = true;

this->radioButton2->Click += gcnew System::EventHandler(this, &Form2::radioButton2_Click);

this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

this->ClientSize = System::Drawing::Size(393, 270);

this->Controls->Add(this->panel2);

this->Controls->Add(this->radioButton2);

this->Controls->Add(this->panel1);

this->Controls->Add(this->radioButton1);

this->Name = L"Form2";

this->Text = L"Создание блокнота";

this->panel1->ResumeLayout(false);

this->panel1->PerformLayout();

this->panel2->ResumeLayout(false);

this->panel2->PerformLayout();

this->ResumeLayout(false);

this->PerformLayout();

}

#pragma endregion

private: Int32 Form2::rand(Int32 count){

 using namespace System::Security::Cryptography;

Int32 result;

 array<Byte>^ randomNumber = gcnew array<Byte>(1);

RNGCryptoServiceProvider^ cryptoProvider = gcnew RNGCryptoServiceProvider();

cryptoProvider->GetBytes(randomNumber);

result = Convert::ToInt32(randomNumber[0]);

result = (result % count);

 return result;

}

private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {

String^ alphavit = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ"+

"абвгдежзийклмнопрстуфхцчшщьъыэюя"+

"abcdefghijklmnopqrstuvwxyz"+

Приложение  Б

(продолжение)

 

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"+

"0123456789 .,/?|';:[]{}-_=+()*&^%$#@!~`";

textBox4->Text = "";

System::Int32 count = Int32::Parse(textBox3->Text);

 for(int i=0; i<count; i++){

Int32 rnd = rand(alphavit->Length);

 textBox4->Text += alphavit[rnd];

}

::Windows::Forms::Clipboard::SetText(textBox4->Text);

}

private: System::Void radioButton2_Click(System::Object^  sender, System::EventArgs^  e) {

 this->textBox1->Enabled = false;

 this->textBox2->Enabled = false;

 this->button1->Enabled = false;

 this->textBox3->Enabled = true;

 this->textBox4->Enabled = true;

 this->button2->Enabled = true;

}

private: System::Void radioButton1_Click(System::Object^  sender, System::EventArgs^  e) {

 this->textBox3->Enabled = false;

 this->textBox4->Enabled = false;

 this->button2->Enabled = false;

 this->textBox1->Enabled = true;

 this->textBox2->Enabled = true;

 this->button1->Enabled = true;

}

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

 using namespace System::IO;

FileStream^ fs = File::Open(textBox1->Text,FileMode::Create);

Int32 fileSize = Int32::Parse(textBox2->Text);

 for(int i=0; i<fileSize; i++)fs->WriteByte( rand(256) );

 fs->Close();

}

};

}



Информация о работе Программа шифрования текста/файла методом одноразовых блокнотов