📄 desdlg.cpp
字号:
#include "stdafx.h"
#include "DES.h"
#include "DESDlg.h"
#include "Encrypt.h"
CDESDlg::CDESDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDESDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CDESDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CDESDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON_DECRYPT, OnButtonDecrypt)
ON_BN_CLICKED(IDC_BUTTON_ENCRYPT, OnButtonEncrypt)
ON_BN_CLICKED(IDC_BUTTON_OPENFILE, OnButtonOpenfile)
ON_BN_CLICKED(IDC_BUTTON_SAVEFILE, OnButtonSavefile)
END_MESSAGE_MAP()
BOOL CDESDlg::OnInitDialog()
{
CDialog::OnInitDialog();
pEdit_MIWEN=(CEdit*)GetDlgItem(IDC_EDIT_MIWEN);
pEdit_MINGWEN=(CEdit*)GetDlgItem(IDC_EDIT_MINGWEN);
pEdit_MIYAO=(CEdit*)GetDlgItem(IDC_EDIT_MIYAO);
pEdit_STATE=(CEdit*)GetDlgItem(IDC_STATIC_STATE);
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
return TRUE; // return TRUE unless you set the focus to a control
}
void CDESDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
dc.DrawIcon(x, y, m_hIcon);
//File_openpath="c:\\mingwen.txt";
//File_savepath="c:\\miwen.txt";
}
else
{
CDialog::OnPaint();
}
}
HCURSOR CDESDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CDESDlg::OnButtonDecrypt()
{
CFile readfile,writefile;
char mingwen[8]="";
char miwen[8]="";
bool subkey[16][48];
DWORD filelen;
readfile.Open(File_openpath,CFile::modeCreate|CFile::modeRead);
writefile.Open(File_savepath,CFile::modeCreate|CFile::modeWrite);
char key[9]="11111111";
char *k;
CString str;
pEdit_MIYAO->GetWindowText(str);
if(str.GetLength()!=8)
{
MessageBox("您输入的不是八位密钥,程序将默认为八位");
}
k=str.GetBuffer(8);
for(int j=0;j<8;j++)
{
key[j]=*k;
k++;
}
Encrypt encrypt;
encrypt.Des_CreateSubkey(key,subkey);
filelen=readfile.GetLength();
for(DWORD i=0;i<=filelen/8;i++)
{
readfile.Read(&miwen,8);
encrypt.Des_Decrypt(mingwen,miwen,subkey);
writefile.Write(&mingwen,8);
mingwen[0]='\0';
mingwen[1]='\0';
mingwen[2]='\0';
mingwen[3]='\0';
mingwen[4]='\0';
mingwen[5]='\0';
mingwen[6]='\0';
mingwen[7]='\0';
miwen[0]='\0';
miwen[1]='\0';
miwen[2]='\0';
miwen[3]='\0';
miwen[4]='\0';
miwen[5]='\0';
miwen[6]='\0';
miwen[7]='\0';
}
readfile.Close();
writefile.Close();
pEdit_STATE->SetWindowText("文件已经成功解密到指定文件");
}
void CDESDlg::OnButtonEncrypt()
{
CFile readfile,writefile;
char mingwen[8]="";
char miwen[8]="";
bool subkey[16][48];
DWORD filelen;
readfile.Open(File_openpath,CFile::modeCreate|CFile::modeRead);
writefile.Open(File_savepath,CFile::modeCreate|CFile::modeWrite);
char key[9]="11111111";
char *k;
CString str;
pEdit_MIYAO->GetWindowText(str);
if(str.GetLength()!=8)
{
MessageBox("您输入的不是八位密钥,程序将默认为八位");
}
k=str.GetBuffer(8);
for(int j=0;j<8;j++)
{
key[j]=*k;
k++;
}
Encrypt encrypt;
encrypt.Des_CreateSubkey(key,subkey);
filelen=readfile.GetLength();
for(DWORD i=0;i<=filelen/8;i++)
{
readfile.Read(&mingwen,8);
encrypt.Des_Encrypt(miwen,mingwen,subkey);
writefile.Write(&miwen,8);
mingwen[0]='\0';
mingwen[1]='\0';
mingwen[2]='\0';
mingwen[3]='\0';
mingwen[4]='\0';
mingwen[5]='\0';
mingwen[6]='\0';
mingwen[7]='\0';
miwen[0]='\0';
miwen[1]='\0';
miwen[2]='\0';
miwen[3]='\0';
miwen[4]='\0';
miwen[5]='\0';
miwen[6]='\0';
miwen[7]='\0';
}
readfile.Close();
writefile.Close();
pEdit_STATE->SetWindowText("文件已经成功加密到指定文件");
}
void CDESDlg::OnButtonOpenfile()
{
CFileDialog filedialog(TRUE);
if(filedialog.DoModal()==IDOK)
{
File_openpath=filedialog.GetPathName();
pEdit_MINGWEN->SetWindowText(File_openpath);
}
}
void CDESDlg::OnButtonSavefile()
{
CFileDialog filedialog(FALSE);
if(filedialog.DoModal()==IDOK)
{
File_savepath=filedialog.GetPathName();
pEdit_MIWEN->SetWindowText(File_savepath);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -