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

📄 des4.cpp

📁 des加密 支持短块加密 文件加密 弱密钥过滤 还附加随机性测试
💻 CPP
字号:
// DES4.cpp : 实现文件
//

#include "stdafx.h"
#include "DES.h"
#include "DES4.h"
void CharToBit(char *,bool *,int);

// CDES4 对话框

IMPLEMENT_DYNAMIC(CDES4, CDialog)

CDES4::CDES4(CWnd* pParent /*=NULL*/)
	: CDialog(CDES4::IDD, pParent)
{

}

CDES4::~CDES4()
{
}

void CDES4::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CDES4, CDialog)
	ON_BN_CLICKED(IDC_BUTTON3, &CDES4::OnBnClickedButton3)
	ON_BN_CLICKED(IDC_BUTTON5, &CDES4::OnBnClickedButton5)
	ON_BN_CLICKED(IDC_BUTTON1, &CDES4::OnBnClickedButton1)
	ON_BN_CLICKED(IDC_BUTTON6, &CDES4::OnBnClickedButton6)
END_MESSAGE_MAP()


// CDES4 消息处理程序
CString inputfile1;
CString inputfile2;

void CDES4::OnBnClickedButton3()
	{

	static char BASED_CODE szfilter[]="All Files (*.*)|*.*||"; ;
	CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szfilter,NULL);
	if (dlg.DoModal()==IDOK)
		{
		CFile file;
		inputfile1=dlg.GetPathName();
		SetDlgItemText(IDC_EDIT1,inputfile1);
		}

	}


void traveral(bool a[],float tra[],int k)
	{
	int i;
	for(i=0;i<k-2;i++)
		{if(a[i]==false)
		{tra[0]++;
	if(a[i+1]==false)
		{tra[2]++;
	if(a[i+2]==false) tra[6]++;
	else tra[7]++;
		}
	else
		{tra[3]++;
	if(a[i+2]==false) tra[8]++;
	else tra[9]++;
		}
		}
		else
			{tra[1]++;
	if(a[i+1]==false)
		{tra[4]++;
	if(a[i+2]==false) tra[10]++;
	else tra[11]++;
		}
	else
		{tra[5]++;
	if(a[i+2]==false) tra[12]++;
	else tra[13]++;
		}
		}
		}
	if(a[k-2]==false)
		{tra[0]++;
	if(a[k-1]==false)
		{tra[0]++;
	tra[2]++;
		}
	else
		{tra[1]++;
	tra[3]++;
		}
		}
	else
		{tra[1]++;
	if(a[k-1]==false)
		{tra[0]++;
	tra[4]++;
		}
	else
		{tra[1]++;
	tra[5]++;
		}
		}
	}


void CDES4::OnBnClickedButton5()
	{	
	FILE *df;
	fopen_s(&df,inputfile1,"rb");
	if(!(df)){
		AfxMessageBox("文件不存在或文件无法打开!");
		return;
		}
	int i;
	int readnum=0;
	float readall=0;
	float total1,total2,total3;
	char buffChar[8]={0};
	bool buffBit[64]={0};

	float total[14]={0};
	float average[14]={0};
	CString str[14];

	while(!feof(df)){
		float tra[14]={0};
		readnum=(int)fread(buffChar,1,8,df);
		CharToBit(buffChar,buffBit,readnum*8);
		traveral(buffBit,tra,readnum*8);
		for (i=0;i<14;i++)
		{
		total[i]=total[i]+tra[i];
			}
		readall=readall+readnum;
		}
	
	fclose(df);

	total1=total[0]+total[1];
	total2=total[2]+total[3]+total[4]+total[5];
	total3=total[6]+total[7]+total[8]+total[9]+total[10]+total[11]+total[12]+total[13];
	for (i=0;i<2;i++)
		{
		average[i]=total[i]/total1;
		str[i].Format("%f",average[i]);
		}
	for (i=2;i<6;i++)
		{
		average[i]=total[i]/total2;
		str[i].Format("%f",average[i]);
		}
	for (i=6;i<14;i++)
		{
		average[i]=total[i]/total3;
		str[i].Format("%f",average[i]);
		}

SetDlgItemText(IDC_EDIT3,str[0]);
SetDlgItemText(IDC_EDIT4,str[1]);
SetDlgItemText(IDC_EDIT5,str[2]);
SetDlgItemText(IDC_EDIT6,str[3]);
SetDlgItemText(IDC_EDIT7,str[4]);
SetDlgItemText(IDC_EDIT8,str[5]);
SetDlgItemText(IDC_EDIT9,str[6]);
SetDlgItemText(IDC_EDIT10,str[7]);
SetDlgItemText(IDC_EDIT11,str[8]);
SetDlgItemText(IDC_EDIT12,str[9]);
SetDlgItemText(IDC_EDIT13,str[10]);
SetDlgItemText(IDC_EDIT14,str[11]);
SetDlgItemText(IDC_EDIT15,str[12]);
SetDlgItemText(IDC_EDIT16,str[13]);

	}



void CDES4::OnBnClickedButton1()
	{
	static char BASED_CODE szfilter[]="All Files (*.*)|*.*||"; ;
	CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szfilter,NULL);
	if (dlg.DoModal()==IDOK)
		{
		CFile file;
		inputfile2=dlg.GetPathName();
		SetDlgItemText(IDC_EDIT2,inputfile2);
		}
	}

void CDES4::OnBnClickedButton6()
	{
	FILE *df;
	fopen_s(&df,inputfile2,"rb");
	if(!(df)){
		AfxMessageBox("文件不存在或文件无法打开!");
		return;
		}
	int i;
	int readnum=0;
	float readall=0;

	char buffChar[9]={0};
	bool buffBit[65]={0};

	float total[14]={0};
	float total1,total2,total3;
	float average[14]={0};
	CString str[14];

	while(!feof(df)){
		float tra[14]={0};
		readnum=(int)fread(buffChar,1,8,df);
		CharToBit(buffChar,buffBit,readnum*8);
		traveral(buffBit,tra,readnum*8);
		for (i=0;i<14;i++)
			{
			total[i]=total[i]+tra[i];
			}
		readall=readall+readnum;
		}

	fclose(df);
	total1=total[0]+total[1];
	total2=total[2]+total[3]+total[4]+total[5];
	total3=total[6]+total[7]+total[8]+total[9]+total[10]+total[11]+total[12]+total[13];
	for (i=0;i<2;i++)
		{
		average[i]=total[i]/total1;
		str[i].Format("%f",average[i]);
		}
	for (i=2;i<6;i++)
		{
		average[i]=total[i]/total2;
		str[i].Format("%f",average[i]);
		}
	for (i=6;i<14;i++)
		{
		average[i]=total[i]/total3;
		str[i].Format("%f",average[i]);
		}

	SetDlgItemText(IDC_EDIT17,str[0]);
	SetDlgItemText(IDC_EDIT18,str[1]);
	SetDlgItemText(IDC_EDIT19,str[2]);
	SetDlgItemText(IDC_EDIT20,str[3]);
	SetDlgItemText(IDC_EDIT21,str[4]);
	SetDlgItemText(IDC_EDIT22,str[5]);
	SetDlgItemText(IDC_EDIT23,str[6]);
	SetDlgItemText(IDC_EDIT24,str[7]);
	SetDlgItemText(IDC_EDIT25,str[8]);
	SetDlgItemText(IDC_EDIT26,str[9]);
	SetDlgItemText(IDC_EDIT27,str[10]);
	SetDlgItemText(IDC_EDIT28,str[11]);
	SetDlgItemText(IDC_EDIT29,str[12]);
	SetDlgItemText(IDC_EDIT30,str[13]);
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -