亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? myfile.cpp

?? 密碼學(xué)實驗中的DES算法
?? CPP
字號:
// MyFile.cpp : implementation file
//

#include "stdafx.h"
#include "DES.h"
#include "DESDlg.h"
#include "MyFile.h"
#include "math.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMyFile property page

IMPLEMENT_DYNCREATE(CMyFile, CPropertyPage)

CMyFile::CMyFile() : CPropertyPage(CMyFile::IDD)
{
	//{{AFX_DATA_INIT(CMyFile)
	m_FilePath = _T("");
	m_mingwen = _T("*****");
	m_miwen = _T("*****");
	m_filekey = _T("");
	//}}AFX_DATA_INIT
}

CMyFile::~CMyFile()
{
}

void CMyFile::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyFile)
	DDX_Text(pDX, IDC_EDIT1, m_FilePath);
	DDX_Text(pDX, IDC_EDIT2, m_mingwen);
	DDX_Text(pDX, IDC_EDIT3, m_miwen);
	DDX_Text(pDX, IDC_EDIT4, m_filekey);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMyFile, CPropertyPage)
	//{{AFX_MSG_MAP(CMyFile)
	ON_BN_CLICKED(IDC_FILE_JIAME, OnFileJiame)
	ON_BN_CLICKED(IDC_FILE_JIEMI, OnFileJiemi)
	ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
	ON_BN_CLICKED(IDC_BROWSE, OnBrowse)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyFile message handlers
void CMyFile::charToBit(CString in,int flag)//獲得密鑰/明文/密文的64位
{
	int i,j;
	char a;
	int key_64[64],DATA[64];
	if(!flag)
	{
		for(i=0;i<8;i++)
		{
			a=in[i];
			for(j=0;j<8;j++)
			{
				key_64[8*i+7-j]=a&0x01;
				a=(char)((int)a>>1);
			}
		}
		key_64Tokey_56AndkeyT1(key_64);
	}
	if(flag)
	{
		for(i=0;i<8;i++)
		{
			a=in[i];
			for(j=0;j<8;j++)
			{
				DATA[8*i+7-j]=a&0x01;
				a=(char)((int)a>>1);
			}
		}
		IpT(DATA);
	}
}
void CMyFile::key_64Tokey_56AndkeyT1(int key_64[64])//將64位的密鑰轉(zhuǎn)換為56位
{
	int i;
	int key_56[56];
	for(i=0;i<56;i++)
		key_56[i]=key_64[keyT1[i]];
	CircleLeftAndkeyT2(key_56);
}
void CMyFile::CircleLeftAndkeyT2(int key_56[56])//獲得十六個密鑰
{
	int i,j,k;
	int temp_C,temp_D,C[28],D[28],CD[56],key[16][48];
	for(i=0;i<28;i++)
		C[i]=key_56[i];
	for(i=28;i<56;i++)
		D[i-28]=key_56[i];
	for(i=0;i<16;i++)
	{
		for(j=0;j<CircleLeft[i];j++)//循環(huán)左移
		{
			temp_C=C[0];
			temp_D=D[0];
			for(k=1;k<28;k++)
			{
				C[k-1]=C[k];
				D[k-1]=D[k];
			}
			C[27]=temp_C;
			D[27]=temp_D;
		}
		for(j=0;j<28;j++)
		{
			CD[j]=C[j];
			CD[j+28]=D[j];
		}
		for(j=0;j<48;j++)
			key[i][j]=CD[keyT2[j]];
	}
	if(FLAG==0)
	{
		for(i=0;i<16;i++)
		{
			for(j=0;j<48;j++)
				RoundKey[i][j]=key[15-i][j];
		}
	}
	else
	{
		for(i=0;i<16;i++)
		{
			for(j=0;j<48;j++)
				RoundKey[i][j]=key[i][j];
		}
	}
}
void CMyFile::Cut(CString str)//將明文分組
{
	CString char_8;
	int i,len,x;
	char ch;
	len=str.GetLength();
	char_8="........";
	for(i=0;i<len;i++)
	{
		if((i+1)%8==0)
		{
			x=i%8;
			ch=str.GetAt(i);
			char_8.SetAt(x,ch);
			charToBit(char_8,1);
			STR+=Result;
		}
		else
		{
			x=i%8;
			ch=str.GetAt(i);
			char_8.SetAt(x,ch);
		}
	}
	if(len%8!=0)
	{
		for(i=len;i<len-len%8+8;i++)
			char_8.SetAt(i%8,'!');
		cnt_a=8-len%8;
		charToBit(char_8,1);
		STR+=Result;
	}	
}
void CMyFile::IpT(int DATA[64])//進(jìn)行換位變換
{
	int i;
	int data[64];
	for(i=0;i<64;i++)
		data[i]=DATA[IP[i]];
	F(data);
}
void CMyFile::F(int data[64])//F函數(shù)
{
	int i,j,k,l;
	int R_48[48],R1[48],L[17][32],R[17][32],B[8][6];
	for(i=0;i<32;i++)
		L[0][i]=data[i];
	for(i=32;i<64;i++)
		R[0][i-32]=data[i];
	for(k=0;k<16;k++)
	{
		for(i=0;i<48;i++)
			R1[i]=R[k][E[i]];
		for(j=0;j<48;j++)
			R_48[j]=R1[j]^RoundKey[k][j];
		j=0;
		for(i=0;i<48;i++)
		{
			if((i%6==0)&&(i!=0))
				j++;
			B[j][i%6]=R_48[i];
		}
		S_funcAndP(B);
		for(l=0;l<32;l++)
			R[k+1][l]=L[k][l]^tmp1[l];
		for(l=0;l<32;l++)
			L[k+1][l]=R[k][l];
	}
	RLAndIP_1(R[16],L[16]);
}

void CMyFile::RLAndIP_1(int R[32],int L[32])//串聯(lián)左右兩部分并進(jìn)行IP逆置換
{
	int i;
	int tmp2[64],out[64];
	for(i=0;i<32;i++)
	{
		tmp2[i]=R[i];
		tmp2[i+32]=L[i];
	}
	for(i=0;i<64;i++)
		out[i]=tmp2[IP_1[i]];
	BitToChar(out);
}
void CMyFile::BitToChar(int out[64])//位轉(zhuǎn)換為字符
{
	int i,j,k,x;
	char ch;
	if(FLAG==1)
	{
		Result="................";
		j=0;
		for(i=0;i<64;i+=4)
		{
			x=out[i]*8+out[i+1]*4+out[i+2]*2+out[i+3];
			ch=Hex.GetAt(x);
			Result.SetAt(j,ch);
			j++;
		}
	}
	else
	{
		j=0;
		Result="........";
		for(i=0;i<8;i++)
		{
			x=0;
			k=7;
			for(k=7;k>=0;k--)
			{
				x+=(int)(out[j]*pow(2,k));
				j++;
			}
			Result.SetAt(i,x);
		}
	}
}
void CMyFile::CutMiwen(CString str)
{
	int i,j,k,x,DATA[64],len;
	len=str.GetLength();
	k=0;
	for(i=0;i<len;i++)
	{
		if(str[i]>='0'&&str[i]<='9')
			x=str[i]-48;
		else
			x=str[i]-87;
		if((i+1)%16==0)
		{
			for(j=0;j<4;j++)
			{
				DATA[k]=B_H[x][j];
				k++;
			}
			IpT(DATA);
			k=0;
			STR+=Result;
		}
		else
		{
			for(j=0;j<4;j++)
			{
				DATA[k]=B_H[x][j];
				k++;
			}
		}
	}
}
void CMyFile::S_funcAndP(int B[8][6])//S盒變換
{
	int i,j,k,t,x,y;
	int tmp[32];printf("SBox\n");
	for(i=0;i<8;i++)
	{
		j=0;
		x=B[i][0]*2+B[i][5];
		y=B[i][1]*8+B[i][2]*4+B[i][3]*2+B[i][4];
		t=SBox[i][x][y];
		for(j=0;j<4;j++)
		{
			k=i*4+j;
			tmp[k]=B_H[t][j];
		}
	}
	for(i=0;i<32;i++)
		tmp1[i]=tmp[P[i]];
}

void CMyFile::OnFileJiame() 
{
	CFile FileW;
	CFile FileR(m_FilePath,CFile::modeRead|CFile::shareDenyWrite);
	HLOCAL hMem;
	char* pChar;

	hMem=LocalAlloc(LHND,FileR.GetLength()+1);
	if(hMem==NULL)
		return;
	pChar=(char *)LocalLock(hMem);
	FileR.ReadHuge(pChar,FileR.GetLength());
	FileW.Open("miwen.txt",CFile::modeCreate|CFile::modeWrite);
	m_mingwen=pChar;
	if(m_mingwen=="")
	{
		MessageBox("明文為空!","提示");
		return;
	}
	STR="";
	FLAG=1;
	cnt_a=0;
	UpdateData(true);
	if(m_filekey.GetLength()<8)
	{
		MessageBox("密鑰字符少于八個!","提示");
		return;
	}
	else
	{
		charToBit(m_filekey,0);
		Cut(m_mingwen);
	}
	FileW.WriteHuge(STR,STR.GetLength());
	LocalUnlock(hMem);
	LocalFree(hMem);
	FileR.Close();
	FileW.Close();
	m_miwen=STR;
	UpdateData(FALSE);	
}

void CMyFile::OnFileJiemi() 
{
CFile FileW;
	CFile FileR(m_FilePath,CFile::modeRead|CFile::shareDenyWrite);
	HLOCAL hMem;
	char* pChar;
	hMem=LocalAlloc(LHND,FileR.GetLength()+1);
	if(hMem==NULL)
		return;
	pChar=(char *)LocalLock(hMem);
	FileR.ReadHuge(pChar,FileR.GetLength());
	FileW.Open("mingwen.txt",CFile::modeCreate|CFile::modeWrite);
	m_miwen=pChar;
	if(m_miwen=="")
	{
		MessageBox("密文為空!","提示");
		return;
	}
	STR="";
	FLAG=0;
	if(m_filekey.GetLength()<8)
	{
		MessageBox("密鑰字符少于八個!","提示");
		return;
	}
	else
	{
		charToBit(m_filekey,0);
		CutMiwen(m_miwen);
	}
	if(cnt_a!=0)
		m_mingwen=STR.GetBufferSetLength(STR.GetLength()-cnt_a);
	else
		m_mingwen=STR;
	FileW.WriteHuge(STR,STR.GetLength());
	LocalUnlock(hMem);
	LocalFree(hMem);
	FileR.Close();
	FileW.Close();
	m_mingwen=STR;
	UpdateData(FALSE);	
}

void CMyFile::OnButton4() 
{
	CDialog::OnCancel();	
}

void CMyFile::OnBrowse() 
{
	CFileDialog dlg(TRUE,NULL,NULL,OFN_EXPLORER|OFN_HIDEREADONLY|OFN_ENABLESIZING|OFN_FILEMUSTEXIST,"文本文件(*.txt)|*.txt||");
	CFile file;
	HLOCAL hMem;
	char* pChar;
	if(dlg.DoModal()==IDOK)
		m_FilePath=dlg.GetPathName();
	else
		return;
	file.Open(m_FilePath,CFile::modeRead);
	hMem=LocalAlloc(LHND,file.GetLength()+1);
	if(hMem==NULL)
		return;
	pChar=(char *)LocalLock(hMem);
	file.ReadHuge(pChar,file.GetLength());
	LocalUnlock(hMem);
	LocalFree(hMem);
	file.Close();
	UpdateData(false);	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久综合| 欧洲一区二区av| 亚洲一区二区av电影| 欧美va日韩va| 欧美日韩在线电影| 丁香激情综合国产| 免费久久99精品国产| 中文字幕一区二区三区蜜月 | 亚洲777理论| 中文字幕免费在线观看视频一区| 欧美午夜一区二区三区| 粉嫩蜜臀av国产精品网站| 午夜精品一区二区三区电影天堂 | 日韩精品久久久久久| 成人免费在线播放视频| 日韩欧美亚洲国产另类| 欧美羞羞免费网站| 9l国产精品久久久久麻豆| 六月婷婷色综合| 亚洲v日本v欧美v久久精品| 亚洲欧洲日产国码二区| 久久综合成人精品亚洲另类欧美| 欧美日韩黄色一区二区| 91高清视频在线| 97久久精品人人做人人爽| 久色婷婷小香蕉久久| 日韩电影在线观看电影| 亚洲综合在线观看视频| 亚洲欧美国产77777| 国产精品免费人成网站| 国产精品素人一区二区| 欧美激情在线一区二区| 国产亚洲自拍一区| 久久精子c满五个校花| 久久综合久久综合久久综合| 精品欧美一区二区久久| 日韩视频中午一区| 日韩欧美一级在线播放| 欧美videos中文字幕| 欧美成人vr18sexvr| 精品久久久久久久久久久久包黑料 | 亚洲最新视频在线播放| 亚洲精品视频在线观看免费| 1024精品合集| 亚洲美女视频一区| 亚洲精品视频一区| 亚洲午夜在线电影| 亚洲福利视频一区| 日本在线观看不卡视频| 日韩电影在线看| 久久99久久久久久久久久久| 国产精品综合二区| 成人蜜臀av电影| 一本大道av伊人久久综合| 在线观看一区日韩| 69成人精品免费视频| 欧美电视剧在线看免费| 久久精品人人做人人爽人人| 久久久久久久电影| 国产精品家庭影院| 夜夜嗨av一区二区三区中文字幕| 午夜精品福利视频网站| 蜜桃精品视频在线观看| 福利一区二区在线| 99精品欧美一区二区三区小说| 91在线一区二区| 欧美日韩精品一区二区天天拍小说| 在线91免费看| 欧美国产一区在线| 一区二区三区精品视频| 青青草原综合久久大伊人精品| 久草在线在线精品观看| 高清不卡一区二区| 欧美午夜精品理论片a级按摩| 日韩欧美的一区二区| 欧美国产一区视频在线观看| 亚洲一区二区欧美日韩| 美女网站视频久久| 粉嫩一区二区三区在线看| 欧美在线观看你懂的| 欧美成人aa大片| 一区在线播放视频| 人人狠狠综合久久亚洲| www.久久久久久久久| 欧美性大战久久| 国产婷婷色一区二区三区四区| 亚洲精品日韩综合观看成人91| 麻豆国产一区二区| 99精品偷自拍| 久久久影视传媒| 亚洲图片欧美视频| 丁香五精品蜜臀久久久久99网站| 欧美性生活久久| 国产精品欧美精品| 免费一级片91| 91久久香蕉国产日韩欧美9色| 欧美成va人片在线观看| 一区二区三区欧美亚洲| 国产乱码精品一区二区三 | 99精品久久只有精品| 精品国产制服丝袜高跟| 亚洲国产日产av| 成人综合婷婷国产精品久久免费| 欧美一区二区视频在线观看| 亚洲三级在线观看| 国产一区二区三区四区在线观看| 欧美中文字幕一区二区三区亚洲 | 日本欧美一区二区| 91农村精品一区二区在线| 精品国产乱码久久久久久久久| 亚洲国产欧美在线人成| 91在线小视频| 国产精品久久久久久久第一福利| 国内精品久久久久影院一蜜桃| 欧美日韩高清一区二区| 亚洲欧美aⅴ...| 99久久婷婷国产综合精品| 久久久久国产精品麻豆ai换脸| 免费av成人在线| 欧美一区二区福利视频| 亚洲福利一区二区| 91激情五月电影| 亚洲免费资源在线播放| eeuss影院一区二区三区| 欧美国产激情二区三区 | 91麻豆国产在线观看| 中文字幕日韩av资源站| 成人av免费观看| 中文字幕乱码日本亚洲一区二区| 国产综合色精品一区二区三区| 精品视频1区2区3区| 一区二区免费看| 在线免费不卡视频| 亚洲一二三区在线观看| 欧美艳星brazzers| 亚洲一区二区免费视频| 欧美日精品一区视频| 亚洲影视在线播放| 欧美视频一二三区| 婷婷久久综合九色国产成人| 欧美精品自拍偷拍| 日本免费新一区视频| 日韩一区二区在线观看视频| 久久精品国产免费| 日韩欧美在线影院| 国产一区二区久久| 国产婷婷色一区二区三区四区 | 欧美一区欧美二区| 蜜臀av一区二区| 国产日韩高清在线| 成熟亚洲日本毛茸茸凸凹| 日韩一区在线播放| 欧美在线一二三四区| 日韩成人av影视| 久久看人人爽人人| 色综合久久88色综合天天免费| 亚洲欧美日韩在线| 欧美日韩一区国产| 精品一区二区在线视频| 国产精品丝袜91| 欧美日韩精品一区二区| 久国产精品韩国三级视频| 国产精品短视频| 欧美日韩国产高清一区二区| 黑人巨大精品欧美一区| 最新国产成人在线观看| 欧美日韩一区小说| 国产精品 欧美精品| 亚洲免费成人av| 91精品国产欧美一区二区成人| 国产高清无密码一区二区三区| 亚洲乱码国产乱码精品精可以看| 91麻豆精品国产综合久久久久久| 理论片日本一区| 中文字幕一区二区三区av| 欧美性大战久久久久久久| 国产九色sp调教91| 一区二区三区在线影院| 日韩视频一区在线观看| 99精品视频一区二区三区| 视频在线观看一区二区三区| 国产女人18水真多18精品一级做| 91传媒视频在线播放| 久久99精品视频| 亚洲精品乱码久久久久久| 亚洲精品在线电影| 欧美亚洲国产bt| 成人丝袜18视频在线观看| 日韩电影在线一区| 亚洲猫色日本管| 久久欧美一区二区| 欧美三级韩国三级日本三斤| 国产成人免费视频网站高清观看视频 | 国产成人日日夜夜| 日韩精品视频网| 自拍偷拍亚洲激情| 久久久亚洲午夜电影| 欧美精选在线播放| 在线观看视频一区二区| 成人激情文学综合网|