📄 filecrydlg.cpp
字号:
// FileCryDlg.cpp : implementation file
//
#include "stdafx.h"
#include "DesDemo.h"
#include "FileCryDlg.h"
#include "Des.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFileCryDlg dialog
CFileCryDlg::CFileCryDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFileCryDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFileCryDlg)
m_nMode = 0;
//}}AFX_DATA_INIT
}
void CFileCryDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFileCryDlg)
DDX_Radio(pDX, IDC_RADIO_ENC, m_nMode);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFileCryDlg, CDialog)
//{{AFX_MSG_MAP(CFileCryDlg)
ON_BN_CLICKED(IDC_BUTTON_SRC, OnButtonSrc)
ON_BN_CLICKED(IDC_BUTTON_DEST, OnButtonDest)
ON_BN_CLICKED(IDC_BUTTON_CRYPTO, OnButtonCrypto)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFileCryDlg message handlers
void CFileCryDlg::OnButtonSrc()
{
CFileDialog file(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"All Files (*.*)|*.*||",NULL);
if(file.DoModal() == IDOK)
{
CString strFile = file.GetPathName();
GetDlgItem(IDC_EDIT_SRC)->SetWindowText(strFile);
}
}
void CFileCryDlg::OnButtonDest()
{
CFileDialog file(FALSE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"Des Crypto File (*.des)|*.*|All Files (*.*)|*.*||",NULL);
if(file.DoModal() == IDOK)
{
CString strFile = file.GetPathName();
GetDlgItem(IDC_EDIT_DEST)->SetWindowText(strFile);
}
}
void CFileCryDlg::OnButtonCrypto()
{
FILE* fileSrc = NULL,*fileDest =NULL;
UpdateData(TRUE);
CString strSrc,strDest;
GetDlgItem(IDC_EDIT_SRC)->GetWindowText(strSrc);
GetDlgItem(IDC_EDIT_DEST)->GetWindowText(strDest);
try
{
char szSrc[64];
char szDest[64];
char szKey[9];
CDes des(3);
GetDlgItem(IDC_EDIT_KEY)->GetWindowText(szKey,9);
fileSrc = fopen(strSrc,"r");
if(!fileSrc)
{
CString str = "打开文件:";
str +=strSrc;
AfxMessageBox(str);
}
fileDest = fopen(strDest,"w+");
if(!fileDest)
{
CString str = "打开文件:";
str +=strDest;
AfxMessageBox(str);
}
while(!feof(fileSrc))
{
unsigned int nRead = fread(szSrc,sizeof(char),64,fileSrc);
if(nRead == 0)
break;
if((nRead<64)&&(nRead>0))
memset(szSrc+nRead,0,64-nRead);
if(m_nMode ==0)
des.Encrypt(szDest,szSrc,64,szKey,8);
else des.Decode(szDest,szSrc,64,szKey,8);
fwrite(szDest,sizeof(char),64,fileDest);
}
fclose(fileSrc);
fclose(fileDest);
if(m_nMode ==0)
AfxMessageBox("加密成功!");
else
AfxMessageBox("解密成功!");
}
catch(char* pE)
{
if(fileSrc)
fclose(fileSrc);
if(fileDest)
fclose(fileDest);
AfxMessageBox(pE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -