Автор работы: Пользователь скрыл имя, 09 Апреля 2013 в 09:51, курсовая работа
В курсовой работе требуется разработать программу шифрования и дешифрования методом одноразовых блокнотов. К программе предъявляются следующие требования:
- входными данными является произвольный текст или файл;
- возможность шифрования/дешифрования текста или файла;
- возможность генерации случайного текста или файла.
Введение 4
1. Разработка алгоритма работы программы 5
2. Кодирование программы 7
3. Проверка и отладка программы 9
4. Оценка результатов работы программы 12
Заключение 13
Список литературы 14
Приложение А 15
Приложение Б 16
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->
this->radioButton2->Click += gcnew System::EventHandler(this, &Form2::radioButton2_Click);
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::
this->ClientSize = System::Drawing::Size(393, 270);
this->Controls->Add(this->
this->Controls->Add(this->
this->Controls->Add(this->
this->Controls->Add(this->
this->Name = L"Form2";
this->Text = L"Создание блокнота";
this->panel1->ResumeLayout(fal
this->panel1->PerformLayout();
this->panel2->ResumeLayout(fal
this->panel2->PerformLayout();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: Int32 Form2::rand(Int32 count){
using namespace System::Security::
Int32 result;
array<Byte>^ randomNumber = gcnew array<Byte>(1);
RNGCryptoServiceProvider^ cryptoProvider = gcnew RNGCryptoServiceProvider();
cryptoProvider->GetBytes(
result = Convert::ToInt32(randomNumber[
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::
}
private: System::Void radioButton2_Click(System::
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::
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,
Int32 fileSize = Int32::Parse(textBox2->Text);
for(int i=0; i<fileSize; i++)fs->WriteByte( rand(256) );
fs->Close();
}
};
}
Информация о работе Программа шифрования текста/файла методом одноразовых блокнотов