среда, 10 мая 2017 г.

Программа для шифрования текста ( С ++ )

Программа "Шифрование"

Сегодня я расскажу вам как создать шифратор на С++ . Это программа сможет зашифровывать большие и маленькие буквы русского алфавита , пробел и точку. Как создать этот шифратор рассказано ниже :




Создаем планшетку с стандартными настройками и называем ее Program.

Далее заходим в ProgramDlg.h удаляем все что написано после "private:" и вставляем следующий код:
//HPEN hPenOxy, hOldPen;
//HBRUSH m, oldm, brush;
//HPEN pen;

//COLORREF cf, c[25];

//CPen d, oldd;
//CBitmap pic;
//CRect rc, w, kw[12];

CString ms, t, shf, q;
int B[66];
wchar_t A[66], buf[20];
//int Matrix[50][50];
int RH, RW, k, n, cod, i, j, cx, cy, dx, dy;
bool fg;
DECLARE_MESSAGE_MAP()

public:
CString Z;

CStatic E;

};


В самом верху кода вставляем:

#define pi 3.14159265358979323846
#include "afxwin.h"







Распологаем объекты из ToolBox как показано ниже :



Клацаем ПКМ по "Static" выбираем Propetries и изменяем в поле ID 

IDC_STATIC на IDC_E.

Клацаем ПКМ по кнопке "Зашифровать" и выбираем Add Event Handler. Смотрим что бы все совпадало с изображением ниже и нажимаем Add and Edit.





Клацаем ПКМ по кнопке "Cancel" и выбираем Add Event Handler. Смотрим что бы все совпадало с изображением ниже и нажимаем Add and Edit.





Открываем файл ProgramDlg.cpp


В самый конец стираем два последних блока и вставляем вот эти ( они идентич
void CProgramDlg::OnBnClickedButton2()

{

// TODO: Add your control notification handler code here

OnOK();
}


void CProgramDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here

UpdateData(true);
ms = Z;
UpdateData(false);

shf = "\tТаблица кодирования:\n\n\t";
n = ms.GetLength();
t.Empty();

A[0] = ' '; B[0] = 0; 
A[65] = '.';  B[65] = 65;
for (k = 1; k < 65; k++)
{
A[k] = wchar_t(k + 1039); 
B[k] = k;
}

j = 0;
for (k = 0; k <8; k++)
{
for (i = 0; i < 8; i++)
{
shf += "\"";
shf += A[j];
shf += "\"=";
t.Format(L"%i\t", B[j]);
if ((B[j] >= 0) && (B[j] < 10))
{
t.Format(L"0%i\t", B[j]);
}
shf += t;
j++;
}
shf += "\n\t";
}

shf += "\"";
shf += A[64];
shf += "\"=";
t.Format(L"%i\t", B[j]);
shf += t;
j++;
shf += "\"";
shf += A[65];
shf += "\"=";
t.Format(L"%i\n\n\t", B[j]);
shf += t;
shf += "Результат шифрования: \n\t";
CString shf1;
shf1.Empty();

for (k = 0; k <n; k++)
{
for (i = 0; i < 66; i++)
{
if (ms[k] == A[i])
{
t.Format(L"%i", B[i]);
if ((B[i] >= 0)&&(B[i]<10))
{
t.Format(L"0%i", B[i]);
}
shf += t;
shf1 += t;
}
}
}


E.SetWindowTextW(shf);

setlocale(LC_ALL, "Russian");
CStdioFile inf(L"D:\\TEMP\\data.txt", CFile::modeCreate | CFile::modeWrite);
inf.WriteString(shf1); // записать в файл
inf.Flush();
inf.Close();




Добавляем библиотеки : 

#include <time.h>
#include <iostream>

using namespace std;


Далее заменяем этим кодом 
CProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/)
: CDialog(IDD_PROGRAM_DIALOG, pParent)
, Z(_T("Я изучаю программирование"))
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CProgramDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);

fg = true;

SetWindowTextW(L"Программа шифрования");
DDX_Text(pDX, IDC_EDIT1, Z);
DDX_Control(pDX, IDC_E, E);

E.SetWindowTextW(L"Введите фразу и нажмите <Зашифровать>:");

}



Этот 
CProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/)
: CDialog(CProgramDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CProgramDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);

c[0] = 0xFF00FF;
c[1] = 0xFFA500;
c[2] = 0xFFFF;
c[3] = 0x0C7800;
c[4] = 0x005690;
c[5] = 0xFFFF0000;
c[6] = 0xCC00AA;
c[7] = 0xAA5600;
c[8] = 0xAAAA;
c[9] = 0x00CC00;
c[10] = 0x090056;
c[11] = 0xF0F0F0;

fg = true;

SetWindowTextW(L"Program");

}





Наша программа готова, осталось только вписать в зону SimpleEdit 

текст и нажать кнопку "Зашифровать"





Программу можно скачать здесь.

Комментариев нет:

Отправить комментарий