⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filecrydlg.cpp

📁 DES查分攻击源代码
💻 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 + -