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

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

?? cipher.h

?? DES算法的加解密實現(xiàn),Visual C++實現(xiàn)
?? H
字號:
#include "SubKeyProduce.h"

/**************************************/
void InitialPermu(int *TB);
void expanpermu(int *RPT,int *EXT);
void SBox(int *RPT,int *EXT);
void PBox(int *RPT);
void lastpermu(int *LPT,int *RPT);
void tochar(int *LPT,int *RPT);
void totext3(int *LPT,int *RPT);
/**************************************/

void cipher(int *textblk,int choice)         //text是8個字節(jié)的塊
{
	/****初始置換****/
	InitialPermu(textblk);

	/****把塊分成兩半****/
	int LPT[32];
	int RPT[32];
	int temp[32];
	for(int m=0;m<32;m++)LPT[m]=textblk[m];
	for(m=0;m<32;m++)RPT[m]=textblk[m+32];
	for(m=0;m<32;m++)temp[m]=textblk[m+32];

/*	for(m=0;m<32;m++)cout<<LPT[m]<<" ";          驗證文本塊對半分無誤
	cout<<endl;
		for(m=0;m<32;m++)cout<<RPT[m]<<" ";
	cout<<endl;
		for(m=0;m<32;m++)cout<<temp[m]<<" ";
	cout<<endl;
*/
	/*************16輪加密*************/
	int turn=1;          //第幾輪
	while(turn<17){
		/****擴(kuò)展置換****/
		int EXT[48];
		expanpermu(RPT,EXT);

		/****按位異或****/
		switch(choice){
		case 1:
			for(m=0;m<48;m++)
				EXT[m]=EXT[m]^SubKey[turn-1][m];
			break;
		case 2:
			for(m=0;m<48;m++)
				EXT[m]=EXT[m]^SubKey[16-turn][m];
			break;
		}

//		for(i=0;i<48;i++)cout<<EXT[i]<<" ";     驗證按位異或無誤
//  	cout<<endl;

		/****S盒替換****/
		SBox(RPT,EXT);

	    /****P盒替換****/
		PBox(RPT);

		/****異或與交換****/
		for(int n=0;n<32;n++)
			RPT[n]=RPT[n]^LPT[n];
		for(n=0;n<32;n++)
			LPT[n]=temp[n];
		for(n=0;n<32;n++)
			temp[n]=RPT[n];

		turn++;
	}

	for(m=0;m<32;m++)
		temp[m]=RPT[m];
	for(m=0;m<32;m++)
		RPT[m]=LPT[m];
	for(m=0;m<32;m++)
		LPT[m]=temp[m];

	/******************最終置換*******************/
	lastpermu(LPT,RPT);

	/******************轉(zhuǎn)換為字符串***************/
	if(choice==1)totext3(LPT,RPT);
	tochar(LPT,RPT);

}

/***************************************函數(shù)實現(xiàn)********************************************/
void InitialPermu(int *TB)
{
	int IPTable[]={57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,
		           61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,
				   56,48,40,32,24,16,8,0,58,50,42,34,26,18,10,2,
				   60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6};
	int tb[64];
	for(int i=0;i<64;i++)tb[i]=TB[i];
	for(i=0;i<64;i++)
		TB[i]=tb[IPTable[i]];
//	for(int m=0;m<64;m++)cout<<TB[m]<<" ";      驗證初始置換是否無誤
//	cout<<endl;
}

void expanpermu(int *RPT,int *EXT)
{
	int EPTable[]={31,0,1,2,3,4,3,4,5,6,7,8,
		           7,8,9,10,11,12,11,12,13,14,15,16,
				   15,16,17,18,19,20,19,20,21,22,23,24,
				   23,24,25,26,27,28,27,28,29,30,31,0};

	for(int i=0;i<48;i++)
		EXT[i]=RPT[EPTable[i]];
//	for(i=0;i<48;i++)cout<<EXT[i]<<" ";     驗證擴(kuò)展置換無誤
//	cout<<endl;
}

void SBox(int *RPT,int *EXT)
{
	/****8個替換盒****/
	int S1[4][16]={{14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7},
	{0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8},
	{4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0},
	{15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13}};
	int S2[4][16]={{15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10},
	{3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5},
	{0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15},
	{13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9}};
	int S3[4][16]={{10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8},
	{13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1},
	{13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7},
	{1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12}};
	int S4[4][16]={{7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15},
	{13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9},
	{10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4},
	{3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14}};
	int S5[4][16]={{2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9},
	{14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6},
	{4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14},
	{11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3}};
	int S6[4][16]={{12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11},
	{10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8},
	{9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6},
	{4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13}};
	int S7[4][16]={{4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1},
	{13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6},
	{1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2},
	{6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12}};
	int S8[4][16]={{13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7},
	{1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2},
	{7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8},
	{2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11}};

	int bk=0;
	while(bk<8){
		int tem[6];
		for(int i=0;i<6;i++)tem[i]=EXT[bk*6+i];

		int row=tem[0]*2+tem[5];
		int column=tem[1]*8+tem[2]*4+tem[3]*2+tem[4];
		int num;

		switch(bk){
		case 0:
			num=S1[row][column];
			break;
		case 1:
			num=S2[row][column];
			break;
		case 2:
			num=S3[row][column];
			break;
		case 3:
			num=S4[row][column];
			break;
		case 4:
			num=S5[row][column];
			break;
		case 5:
			num=S6[row][column];
			break;
		case 6:
			num=S7[row][column];
			break;
		case 7:
			num=S8[row][column];
			break;
		}

        int times=3;
		while(times>=0){
			RPT[bk*4+times]=num%2;
			times--;
			num=num/2;
		}

		bk++;
	}

//	for(int i=0;i<32;i++)cout<<RPT[i]<<" ";        驗證S盒替換無誤
//	cout<<endl;
}

void PBox(int *RPT)
{
	int tem[32];
	for(int i=0;i<32;i++)tem[i]=RPT[i];

	int PTable[]={15,6,19,20,28,11,27,16,0,14,22,25,4,17,30,9,
		          1,7,23,13,31,26,2,8,18,12,29,5,21,10,3,24};
    
	for(i=0;i<32;i++)
		RPT[i]=tem[PTable[i]];
}

void lastpermu(int *LPT,int *RPT)
{
	int LPTable[]={39,7,47,15,55,23,63,31,38,6,46,14,54,22,62,30,
		           37,5,45,13,53,21,61,29,36,4,44,12,52,20,60,28,
				   35,3,43,11,51,19,59,27,34,2,42,10,50,18,58,26,
				   33,1,41,9,49,17,57,25,32,0,40,8,48,16,56,24};

	int tt[64];
	for(int i=0;i<32;i++)
		tt[i]=LPT[i];
	for(i=0;i<32;i++)
		tt[i+32]=RPT[i];

	for (i=0;i<64;i++){
			if(i<32)LPT[i]=tt[LPTable[i]];
			else RPT[i-32]=tt[LPTable[i]];
	}
}

void tochar(int *LPT,int *RPT)
{
	int t=0;
	char value;
	while(t<8){
		if(t<4){
			value=(char)(LPT[t*8]*128+LPT[t*8+1]*64+LPT[t*8+2]*32+LPT[t*8+3]*16+LPT[t*8+4]*8
				  +LPT[t*8+5]*4+LPT[t*8+6]*2+LPT[t*8+7]);
		}
		else{
			value=(char)(RPT[(t-4)*8]*128+RPT[(t-4)*8+1]*64+RPT[(t-4)*8+2]*32+RPT[(t-4)*8+3]*16
				  +RPT[(t-4)*8+4]*8+RPT[(t-4)*8+5]*4+RPT[(t-4)*8+6]*2+RPT[(t-4)*8+7]);
		}

		int k=strlen(text2);
		text2[k]=value;         //一個一個字符地轉(zhuǎn)換
//      cout<<value<<endl;        驗證轉(zhuǎn)換為字符型并且添加到text2是否成功
//		cout<<text2<<endl;
		t++;
	}
}

void totext3(int *LPT,int *RPT)
{
	for(int x=0;x<32;x++)
		text3[text3_index++]=LPT[x];
	for(x=0;x<32;x++)
		text3[text3_index++]=RPT[x];
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草国产精品亚洲专区无| 国产一区二区三区四区五区美女| 日韩码欧中文字| 国产欧美va欧美不卡在线| 久久综合99re88久久爱| 欧美电影免费观看高清完整版| 555www色欧美视频| 精品卡一卡二卡三卡四在线| 亚洲精品一区二区三区在线观看| 日韩一区二区三区精品视频| 精品电影一区二区| 国产精品久久影院| 亚洲综合色噜噜狠狠| 丝袜美腿高跟呻吟高潮一区| 老色鬼精品视频在线观看播放| 国产一区二三区| 91麻豆精东视频| 精品国免费一区二区三区| 国产精品每日更新在线播放网址| 亚洲欧美日韩中文播放| 日韩综合一区二区| 丰满岳乱妇一区二区三区| 欧美少妇bbb| 国产精品美女久久久久久久久| 亚洲aⅴ怡春院| www.66久久| 久久麻豆一区二区| 免费在线观看不卡| 欧美在线免费观看亚洲| 国产夜色精品一区二区av| 一区二区三区美女| 国产精品福利一区二区| 久久先锋影音av鲁色资源网| 国产精品久久久久永久免费观看| 亚洲另类在线视频| av资源站一区| 欧美国产精品中文字幕| 狠狠色狠狠色综合日日91app| 日本伦理一区二区| 亚洲最大成人网4388xx| av不卡一区二区三区| 久久久91精品国产一区二区三区| 日产国产欧美视频一区精品 | 久久se精品一区二区| 欧美亚洲尤物久久| 午夜激情久久久| 欧美日韩一区高清| 亚洲成人av电影在线| 欧美性生活久久| 日韩一区欧美二区| 26uuu久久天堂性欧美| 国产成人福利片| 中文字幕亚洲一区二区av在线 | 久久噜噜亚洲综合| 高清成人在线观看| 亚洲一区av在线| 日韩欧美国产一区二区在线播放| 久久精品国产澳门| 久久久综合激的五月天| 一本一道久久a久久精品综合蜜臀| 国产精品久久久久久久久图文区 | 日韩精品电影在线| 久久精品夜色噜噜亚洲aⅴ| 成人aa视频在线观看| 日韩激情一二三区| 亚洲色图.com| 欧美tickling网站挠脚心| 99国产精品一区| 精品系列免费在线观看| 亚洲一区在线观看视频| 久久久综合精品| 91精品久久久久久蜜臀| 一本大道av伊人久久综合| 婷婷亚洲久悠悠色悠在线播放| 亚洲国产成人自拍| 欧美一区二区三区免费大片| 91尤物视频在线观看| 精品一区二区影视| 日韩中文字幕1| 一区二区三区加勒比av| 欧美在线制服丝袜| 国产在线视频一区二区| 青青草伊人久久| 天天综合天天综合色| 有码一区二区三区| 亚洲三级小视频| 亚洲日韩欧美一区二区在线| 中文字幕不卡在线播放| 久久久久久久久免费| ww亚洲ww在线观看国产| 精品国产乱码久久久久久闺蜜| 在线不卡免费欧美| 日韩精品一区二区三区在线观看 | 亚洲一区二区三区四区在线免费观看 | 国产亚洲一区二区三区在线观看| 精品国偷自产国产一区| 欧美激情一区三区| 一区二区三区免费观看| 麻豆精品一区二区三区| 国内精品免费**视频| 99久久精品久久久久久清纯| 99国产精品视频免费观看| 欧美在线不卡一区| 久久久久国产精品麻豆 | 国产精品影视在线观看| 成人av午夜电影| 69成人精品免费视频| 欧美国产日韩一二三区| 亚洲第一福利一区| 国内精品伊人久久久久av一坑| 91美女视频网站| 欧美电视剧在线看免费| 亚洲激情av在线| 激情图片小说一区| 色婷婷激情久久| 欧美精品一区二区三区蜜臀| 亚洲精品亚洲人成人网| 韩国成人精品a∨在线观看| 99re这里都是精品| 国产三级欧美三级| 蜜桃在线一区二区三区| 欧美三电影在线| 亚洲美女视频一区| 成人免费高清在线| 欧美精品一区二区久久婷婷| 亚洲成人av中文| 97久久精品人人做人人爽50路| 久久夜色精品一区| 狠狠色综合日日| 欧美精品一区二区精品网| 六月婷婷色综合| 欧美一卡在线观看| 日本美女一区二区三区视频| 欧美日韩在线一区二区| 午夜精品福利一区二区三区av| 成人免费视频一区| 欧洲一区二区三区免费视频| 26uuu亚洲| 99精品国产视频| 亚洲专区一二三| 欧美系列亚洲系列| 奇米影视在线99精品| 久久免费偷拍视频| 色婷婷激情一区二区三区| 亚洲国产精品久久久久秋霞影院 | 亚洲自拍与偷拍| 日韩一区二区在线看| 国产成人免费视频精品含羞草妖精 | 久久久99免费| 在线免费不卡视频| 日日夜夜一区二区| 国产精品免费人成网站| 欧美日韩欧美一区二区| 国产一区免费电影| 一区二区三区成人| 久久久美女毛片| 欧美日韩一级片网站| 成人一区二区三区视频| 日本aⅴ亚洲精品中文乱码| 中文字幕一区av| 国产日韩精品一区二区浪潮av| 在线观看91视频| 99在线精品视频| 国产传媒一区在线| 卡一卡二国产精品| 日韩不卡一区二区三区| 一区二区三区在线视频免费观看| 精品国产乱码久久久久久免费| 欧美日韩视频一区二区| 色综合天天做天天爱| 国产·精品毛片| 国产一区二区91| 国产一区二区三区精品视频| 丝袜美腿亚洲一区二区图片| 亚洲一区二区高清| 一区二区三区高清在线| 亚洲精品乱码久久久久久| 国产女人aaa级久久久级| 26uuuu精品一区二区| 精品国产伦一区二区三区免费| 欧美一区二区在线视频| 91精品啪在线观看国产60岁| 欧美一区二区久久| 亚洲精品一线二线三线| 国产欧美日韩三区| 亚洲欧洲日韩av| 亚洲宅男天堂在线观看无病毒| 一区二区三区在线免费播放| 亚洲国产一区二区视频| 日本美女一区二区三区视频| 久久99深爱久久99精品| 成人激情小说乱人伦| 欧洲精品一区二区三区在线观看| 欧美日韩成人综合在线一区二区| 91精品国产综合久久蜜臀| 久久久不卡网国产精品一区| 亚洲视频网在线直播| 精品一区二区三区免费毛片爱| av中文字幕不卡| 精品美女被调教视频大全网站|