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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cipher.cpp

?? DES算法的加解密實現,Visual C++實現
?? CPP
字號:
#include <string.h>
#include <iostream.h>

#include "Cipher.h"
#ifndef SubKey
#include "GlobalData.h"
#endif

/**************************************/
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 cipher(char *text)         //text是8個字節的塊
{
	/****把64比特位的塊轉換成64個整數****/
	int textblock[64];
	int index=63;
	for(int i=0;i<8;i++){
		for(int j=0;j<8;j++){
			textblock[index--]=(int)text[i]%2;
			text[i]>>1;
		}
	}

	/****初始置換****/
	InitialPermu(textblock);

	/****把塊分成兩半****/
	int LPT[32];
	int RPT[32];
	int temp[32];
	memcpy(LPT,textblock,64);
	memcpy(RPT,textblock+64,64);
	memcpy(temp,textblock+64,64);

	/*************16輪加密*************/
	int turn=1;          //第幾輪
	while(turn<17){
		/****擴展置換****/
		int EXT[48];
		expanpermu(RPT,EXT);

		/****按位異或****/
		for(int m=0;m<48;m++)
			EXT[m]=EXT[m]^SubKey[turn-1][m];

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

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

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

		turn++;
	}

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

	/******************轉換為字符串*****************/
	tochar(LPT,RPT);
}

/*********************************函數實現****************************************/
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,21,12,4,62,54,46,38,30,22,14,6};
	int tb[64];
	memcpy(tb,TB,128);
	for(int i=0;i<64;i++)
		TB[i]=tb[IPTable[i]];
}

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]];
}

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];
		memcpy(tem,EXT+bk*6,12);
		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 loop=3;
		while(loop>=0){
			*(RPT+bk*4+loop)=num%2;
			loop--;
			num>>1;
		}

		bk++;
	}
}

void PBox(int *RPT)
{
	int tem[32];
	memcpy(tem,RPT,64);

	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(int k=0;k<32;k++)
		RPT[k]=tem[PTable[k]];
}

void lastpermu(int *LPT,int *RPT)
{
	int LPTable[]={39,7,47,45,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 LT[32],RT[32];
	memcpy(LT,LPT,64);
	memcpy(RT,RPT,64);

	for (int k=0;k<64;k++){
		if(LPTable[k]<32){
			if(k<32)LPT[k]=LT[LPTable[k]];
			else RPT[k-32]=LT[LPTable[k]];
		}
		else{
			if(k<32)LPT[k]=RT[LPTable[k]-32];
			else RPT[k-32]=RT[LPTable[k]-32];
		}
	}
}

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);
//		strncpy(text2+k,value,1);            //轉換了一個字節
		text2[k]=value;

		t++;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频在线看| 欧美激情综合在线| 4438x亚洲最大成人网| 欧美不卡在线视频| 亚洲精品亚洲人成人网| 一区二区三区四区在线免费观看 | 色屁屁一区二区| 欧美性色欧美a在线播放| 欧美激情在线免费观看| 国内精品在线播放| 成人一道本在线| 欧美日韩国产经典色站一区二区三区 | 国产成a人亚洲| 欧美一级理论片| 亚洲一区二区三区中文字幕在线| 国产精品综合二区| 精品国产99国产精品| 亚洲欧美日韩久久| 97精品国产露脸对白| 欧美激情一区二区三区蜜桃视频 | 欧美国产欧美综合| 国产成人av在线影院| 久久久精品免费观看| 国产综合成人久久大片91| 欧美军同video69gay| 日韩电影免费在线看| 91久久人澡人人添人人爽欧美| 欧美日韩精品系列| 午夜视频在线观看一区| 欧美日韩亚洲综合在线| 亚洲成人免费看| 日韩免费视频一区| av亚洲精华国产精华精华| 亚洲精品网站在线观看| 欧美日韩国产影片| 美女脱光内衣内裤视频久久网站| 欧美日韩大陆在线| 国产一区二区中文字幕| 日韩美女视频一区| 欧美一区二区三区不卡| 成人久久久精品乱码一区二区三区| 欧美一区二区三区视频在线 | 成人美女视频在线观看18| 亚洲精品伦理在线| 国产亚洲欧洲997久久综合| 不卡一区二区在线| 精品一区二区三区香蕉蜜桃| 国产精品无人区| 欧美日韩亚洲综合| 99久久精品国产毛片| 国产九九视频一区二区三区| 亚洲成a人片在线不卡一二三区| 久久久欧美精品sm网站| 欧美一区二区三区免费在线看| 色综合欧美在线| 99国产精品久久久久久久久久| 国产在线一区二区| 国产一区二区三区四| 美女视频黄久久| 免费日韩伦理电影| 久久丁香综合五月国产三级网站| 亚洲国产日韩在线一区模特 | 日韩久久久久久| 欧美影院精品一区| 91精品麻豆日日躁夜夜躁| 日韩美女视频一区二区在线观看| 日韩一区二区免费在线电影| 国产视频911| 国产无人区一区二区三区| 日本一二三不卡| 亚洲欧洲综合另类在线| 亚洲一区免费视频| 美女视频黄a大片欧美| 大陆成人av片| 欧美丝袜丝交足nylons图片| 欧美日韩一二三区| 国产精品午夜久久| 亚洲一区在线观看网站| 久久er99热精品一区二区| 成人激情小说乱人伦| 欧美一区二区三区婷婷月色| 中文字幕欧美三区| 久久精品国产免费| 欧美性xxxxxxxx| 久久久午夜精品理论片中文字幕| 亚洲美女屁股眼交3| 狠狠色综合色综合网络| 欧美影院一区二区| 中文字幕av免费专区久久| 九九**精品视频免费播放| 成人高清视频在线| 久久久久综合网| 国产一区二区在线电影| 日韩一级完整毛片| 免费成人深夜小野草| 欧美日韩久久久一区| 亚洲一区精品在线| 欧美亚洲免费在线一区| 一区二区三区四区不卡视频| 色综合久久久久综合体桃花网| 国产精品无人区| www.一区二区| 亚洲丝袜制服诱惑| 欧美日韩国产小视频在线观看| 亚洲黄色免费网站| 91精品国产黑色紧身裤美女| 免费在线观看视频一区| 精品久久国产97色综合| 国产高清精品久久久久| 亚洲精品免费播放| 欧美一区二区三区系列电影| 国产永久精品大片wwwapp| 国产精品久久影院| 欧美伊人久久久久久久久影院| 婷婷综合另类小说色区| 久久久久久久久免费| 欧美亚洲自拍偷拍| 成人免费视频一区二区| 亚洲r级在线视频| 国产性做久久久久久| 欧美影院精品一区| 激情综合网最新| 亚洲香肠在线观看| 欧美国产精品一区二区| 69堂成人精品免费视频| 91年精品国产| 成人国产电影网| 国产一区二区三区在线观看免费 | 热久久国产精品| 亚洲永久精品大片| 国产精品国产精品国产专区不蜜| 欧美精品一级二级| 成人精品视频一区二区三区| 日韩高清中文字幕一区| 一区二区在线观看视频在线观看| 久久久亚洲精品石原莉奈| 91精品国产综合久久精品图片| 欧洲精品一区二区| 91官网在线观看| 欧美色图一区二区三区| www.av亚洲| 在线亚洲一区二区| 在线精品视频免费播放| 色综合天天综合狠狠| 91在线观看免费视频| 91免费在线播放| 欧美老女人在线| 精品国产亚洲一区二区三区在线观看| 91精品综合久久久久久| 日韩午夜激情电影| 欧美国产乱子伦| 一区二区三区日韩欧美| 日韩av网站在线观看| 国产**成人网毛片九色 | 开心九九激情九九欧美日韩精美视频电影 | 久久综合视频网| 一区二区视频免费在线观看| 麻豆91在线播放| www.激情成人| 亚洲精品一区二区三区四区高清| 久久久99久久| 天堂一区二区在线免费观看| 国产一区 二区 三区一级| 欧美综合欧美视频| 中文字幕二三区不卡| 日本欧美一区二区三区| 色老汉av一区二区三区| 精品欧美久久久| 亚洲综合丁香婷婷六月香| 懂色av中文一区二区三区| 欧美一区二区黄| 首页欧美精品中文字幕| 色综合天天天天做夜夜夜夜做| 国产亚洲一本大道中文在线| 免费精品99久久国产综合精品| 91激情五月电影| 亚洲综合免费观看高清完整版在线 | 成人免费va视频| 国产精品亲子乱子伦xxxx裸| 久久国产成人午夜av影院| 在线不卡一区二区| 日韩国产高清在线| 在线成人av影院| 六月丁香婷婷久久| 精品福利在线导航| 国产福利一区二区| 一区二区三区产品免费精品久久75| 国产不卡高清在线观看视频| 国产精品视频一二| 日本高清不卡一区| 强制捆绑调教一区二区| 国产日韩欧美精品电影三级在线| 久久99精品国产| 国产精品久久久一本精品| 在线视频一区二区三区| 蜜臀a∨国产成人精品| 国产精品理论片在线观看| 欧美一区二区观看视频| 成人免费视频免费观看| 亚洲成人免费av|