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

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

?? des.c

?? 本人基于William Stalling的《密碼學與網(wǎng)絡安全》實現(xiàn)的128位DES加密算法
?? C
?? 第 1 頁 / 共 2 頁
字號:
//////////////////////////////////////////////////////////////////////////////
//						**************************							//
//						*Data Encryption Standard*							//
//						**************************							//
//																			//
//								Realized in C								//
//																			//
//								*************								//
//								*Constructed*								//
//								*     By    *								//
//								*           *								//
//								*Xie Xingwei*								//
//								*************								//
//																			//
//	If you have any question about my code,contact me with E-mail please	//
//																			//
//						xiexingwei_2008@hotmail.com							//
//////////////////////////////////////////////////////////////////////////////

#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include "data_struct.h"

/*16 48-bit subkeys*/
extern struct SUBKEYSTRUCT subkey1;
extern struct SUBKEYSTRUCT subkey2;
extern struct SUBKEYSTRUCT subkey3;
extern struct SUBKEYSTRUCT subkey4;
extern struct SUBKEYSTRUCT subkey5;
extern struct SUBKEYSTRUCT subkey6;
extern struct SUBKEYSTRUCT subkey7;
extern struct SUBKEYSTRUCT subkey8;
extern struct SUBKEYSTRUCT subkey9;
extern struct SUBKEYSTRUCT subkey10;
extern struct SUBKEYSTRUCT subkey11;
extern struct SUBKEYSTRUCT subkey12;
extern struct SUBKEYSTRUCT subkey13;
extern struct SUBKEYSTRUCT subkey14;
extern struct SUBKEYSTRUCT subkey15;
extern struct SUBKEYSTRUCT subkey16;

int des(unsigned char *buffer)
{
	/*Some variables for DES computation*/
	int i,x;
	struct BLOCK4L temp4L;
	struct BLOCK4S *ptemp4S;
	unsigned char temp[4];
	unsigned char temp1[4];
	struct BLOCK32S *ptemp1;
	unsigned char tempbuffer[8];
	struct BLOCK64S *ptempbuffer;

	struct SUBKEYSTRUCT *subkey;/*Pointer of subkeys*/

	struct BLOCK64S *pbuffer;
	struct SUBKEYSTRUCT EPbuffer; /*Used for expansion/permutation*/
	unsigned char redbuffer[4];/*Left part of the buffer*/
	unsigned char bluebuffer[4];/*Right part of the buffer*/
	struct BLOCK32S8 *pbluebuffer;
	struct BLOCK32L *leftpart; /*Pointer of the left part*/
	struct BLOCK32S *rightpart;/*Pointer of the right part*/
	struct BLOCK32L *rightpart1;
	struct BLOCK2S row; /*Used for locating the data in the S-Boxes*/
	struct BLOCK4S col; /*Used for locating the data in the S-Boxes*/
	struct BLOCK2L *prow;
	struct BLOCK4L *pcol;

	/*Definition of 8 DES S-Boxes*/
	unsigned 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}};

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

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

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

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

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

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

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

	/*Pointer initialization*/
	pbuffer=(struct BLOCK64S *)buffer;
	ptempbuffer=(struct BLOCK64S *)tempbuffer;
	leftpart=(struct BLOCK32L *)redbuffer;
	pbluebuffer=(struct BLOCK32S8 *)bluebuffer;
	rightpart=(struct BLOCK32S *)bluebuffer;
	rightpart1=(struct BLOCK32L *)bluebuffer;
	prow=(struct BLOCK2L *)(&row);
	pcol=(struct BLOCK4L *)(&col);
	ptemp1=(struct BLOCK32S *)(&temp1);
	ptemp4S=(struct BLOCK4S *)(&temp4L);
	
	/*Initial permutation*/
	for(i=0;i<8;i++)
	{
		tempbuffer[i]=buffer[i];
	}
	pbuffer->bit0=ptempbuffer->bit57; pbuffer->bit1=ptempbuffer->bit49;
	pbuffer->bit2=ptempbuffer->bit41; pbuffer->bit3=ptempbuffer->bit33;
	pbuffer->bit4=ptempbuffer->bit25; pbuffer->bit5=ptempbuffer->bit17;
	pbuffer->bit6=ptempbuffer->bit9;  pbuffer->bit7=ptempbuffer->bit1;
	pbuffer->bit8=ptempbuffer->bit59; pbuffer->bit9=ptempbuffer->bit51;
	pbuffer->bit10=ptempbuffer->bit43;pbuffer->bit11=ptempbuffer->bit35;
	pbuffer->bit12=ptempbuffer->bit27;pbuffer->bit13=ptempbuffer->bit19;
	pbuffer->bit14=ptempbuffer->bit11;pbuffer->bit15=ptempbuffer->bit3;
	pbuffer->bit16=ptempbuffer->bit61;pbuffer->bit17=ptempbuffer->bit53;
	pbuffer->bit18=ptempbuffer->bit45;pbuffer->bit19=ptempbuffer->bit37;
	pbuffer->bit20=ptempbuffer->bit29;pbuffer->bit21=ptempbuffer->bit21;
	pbuffer->bit22=ptempbuffer->bit13;pbuffer->bit23=ptempbuffer->bit5;
	pbuffer->bit24=ptempbuffer->bit63;pbuffer->bit25=ptempbuffer->bit55;
	pbuffer->bit26=ptempbuffer->bit47;pbuffer->bit27=ptempbuffer->bit39;
	pbuffer->bit28=ptempbuffer->bit31;pbuffer->bit29=ptempbuffer->bit23;
	pbuffer->bit30=ptempbuffer->bit15;pbuffer->bit31=ptempbuffer->bit7;
	pbuffer->bit32=ptempbuffer->bit56;pbuffer->bit33=ptempbuffer->bit48;
	pbuffer->bit34=ptempbuffer->bit40;pbuffer->bit35=ptempbuffer->bit32;
	pbuffer->bit36=ptempbuffer->bit24;pbuffer->bit37=ptempbuffer->bit16;
	pbuffer->bit38=ptempbuffer->bit8; pbuffer->bit39=ptempbuffer->bit0;
	pbuffer->bit40=ptempbuffer->bit58;pbuffer->bit41=ptempbuffer->bit50;
	pbuffer->bit42=ptempbuffer->bit42;pbuffer->bit43=ptempbuffer->bit34;
	pbuffer->bit44=ptempbuffer->bit26;pbuffer->bit45=ptempbuffer->bit18;
	pbuffer->bit46=ptempbuffer->bit10;pbuffer->bit47=ptempbuffer->bit2;
	pbuffer->bit48=ptempbuffer->bit60;pbuffer->bit49=ptempbuffer->bit52;
	pbuffer->bit50=ptempbuffer->bit44;pbuffer->bit51=ptempbuffer->bit36;
	pbuffer->bit52=ptempbuffer->bit28;pbuffer->bit53=ptempbuffer->bit20;
	pbuffer->bit54=ptempbuffer->bit12;pbuffer->bit55=ptempbuffer->bit4;
	pbuffer->bit56=ptempbuffer->bit62;pbuffer->bit57=ptempbuffer->bit54;
	pbuffer->bit58=ptempbuffer->bit46;pbuffer->bit59=ptempbuffer->bit38;
	pbuffer->bit60=ptempbuffer->bit30;pbuffer->bit61=ptempbuffer->bit22;
	pbuffer->bit62=ptempbuffer->bit14;pbuffer->bit63=ptempbuffer->bit6;

	/*Break buffer into two parts*/
	for(i=0;i<4;i++)
	{
		redbuffer[i]=buffer[i];
		bluebuffer[i]=buffer[i+4];
	}

	for(x=15;x>=0;x--)
	{	
		for(i=0;i<4;i++)
		{
			temp[i]=bluebuffer[i];
		}
		/*Expation and permutation*/
		EPbuffer.k0=rightpart->bit31; EPbuffer.k1=rightpart->bit0;
		EPbuffer.k2=rightpart->bit1;  EPbuffer.k3=rightpart->bit2;
		EPbuffer.k4=rightpart->bit3;  EPbuffer.k5=rightpart->bit4;
		EPbuffer.k6=rightpart->bit3;  EPbuffer.k7=rightpart->bit4;
		EPbuffer.k8=rightpart->bit5;  EPbuffer.k9=rightpart->bit6;
		EPbuffer.k10=rightpart->bit7; EPbuffer.k11=rightpart->bit8;
		EPbuffer.k12=rightpart->bit7; EPbuffer.k13=rightpart->bit8;
		EPbuffer.k14=rightpart->bit9; EPbuffer.k15=rightpart->bit10;
		EPbuffer.k16=rightpart->bit11;EPbuffer.k17=rightpart->bit12;
		EPbuffer.k18=rightpart->bit11;EPbuffer.k19=rightpart->bit12;
		EPbuffer.k20=rightpart->bit13;EPbuffer.k21=rightpart->bit14;
		EPbuffer.k22=rightpart->bit15;EPbuffer.k23=rightpart->bit16;
		EPbuffer.k24=rightpart->bit15;EPbuffer.k25=rightpart->bit16;
		EPbuffer.k26=rightpart->bit17;EPbuffer.k27=rightpart->bit18;
		EPbuffer.k28=rightpart->bit19;EPbuffer.k29=rightpart->bit20;
		EPbuffer.k30=rightpart->bit19;EPbuffer.k31=rightpart->bit20;
		EPbuffer.k32=rightpart->bit21;EPbuffer.k33=rightpart->bit22;
		EPbuffer.k34=rightpart->bit23;EPbuffer.k35=rightpart->bit24;
		EPbuffer.k36=rightpart->bit23;EPbuffer.k37=rightpart->bit24;
		EPbuffer.k38=rightpart->bit25;EPbuffer.k39=rightpart->bit26;
		EPbuffer.k40=rightpart->bit27;EPbuffer.k41=rightpart->bit28;
		EPbuffer.k42=rightpart->bit27;EPbuffer.k43=rightpart->bit28;
		EPbuffer.k44=rightpart->bit29;EPbuffer.k45=rightpart->bit30;
		EPbuffer.k46=rightpart->bit31;EPbuffer.k47=rightpart->bit30;

		/*Get subkey from buffer*/
		switch(x)
		{
		case 0:
			subkey=&subkey1;
			break;
		case 1:
			subkey=&subkey2;
			break;
		case 2:
			subkey=&subkey3;
			break;
		case 3:
			subkey=&subkey4;
			break;
		case 4:
			subkey=&subkey5;
			break;
		case 5:
			subkey=&subkey6;
			break;
		case 6:
			subkey=&subkey7;
			break;
		case 7:
			subkey=&subkey8;
			break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品自在在线| 精品视频免费在线| 91福利社在线观看| 精品欧美黑人一区二区三区| 国产精品你懂的在线欣赏| 亚洲18女电影在线观看| 国产·精品毛片| 日韩欧美国产一区在线观看| 亚洲欧美日韩小说| 国产成人综合亚洲网站| 日韩网站在线看片你懂的| 一区二区在线观看免费| 国产成人一区在线| 精品国产乱码久久久久久闺蜜 | 成人欧美一区二区三区小说| 久久精品国产久精国产| 在线观看免费成人| 中文字幕一区二区三区精华液| 日韩中文字幕91| 欧美性受xxxx黑人xyx| 国产精品国产三级国产a| 久久爱www久久做| 91精品国产乱码久久蜜臀| 国产精品私人影院| 国产成人自拍网| 久久众筹精品私拍模特| 久久国产精品无码网站| 欧美一区二区网站| 天天影视网天天综合色在线播放 | 国产盗摄一区二区三区| 2023国产精品| 国内精品久久久久影院薰衣草| 欧美精品黑人性xxxx| 亚洲成va人在线观看| 欧美日韩一区三区| 亚洲一区二区三区不卡国产欧美| 色婷婷亚洲精品| 亚洲免费观看在线视频| 日本韩国欧美在线| 亚洲综合999| 欧美日韩国产高清一区二区 | 91热门视频在线观看| 中文字幕一区二区三区蜜月| 99亚偷拍自图区亚洲| 亚洲日本中文字幕区| 色偷偷成人一区二区三区91| 亚洲精品高清在线| 欧美日本不卡视频| 麻豆91在线播放| 国产亚洲制服色| av一区二区三区四区| 亚洲黄色小说网站| 91精品中文字幕一区二区三区| 日韩高清在线一区| wwwwxxxxx欧美| 99精品久久久久久| 亚洲大片免费看| 精品国产青草久久久久福利| 成人性生交大片免费看在线播放| 国产精品国产自产拍高清av王其 | 正在播放亚洲一区| 国产剧情一区二区| 亚洲女人的天堂| 91精品国产色综合久久| 国产乱码字幕精品高清av| 成人欧美一区二区三区在线播放| 欧洲视频一区二区| 国精产品一区一区三区mba视频| 中文字幕欧美激情一区| 欧美日韩三级视频| 国产99久久久精品| 水野朝阳av一区二区三区| 国产丝袜在线精品| 欧美性大战久久久久久久蜜臀 | 成人午夜短视频| 亚洲自拍偷拍网站| 精品少妇一区二区三区日产乱码| 成人av电影免费观看| 婷婷开心激情综合| 国产精品国产三级国产普通话蜜臀| 制服丝袜激情欧洲亚洲| 99re视频精品| 韩国女主播一区二区三区| 亚洲精品伦理在线| 久久久精品国产免大香伊| 欧美日产在线观看| 成+人+亚洲+综合天堂| 久久国产三级精品| 亚洲图片欧美色图| 中文字幕一区二区不卡| 久久夜色精品国产噜噜av| 欧美色图12p| 91网上在线视频| 国产白丝网站精品污在线入口| 日韩精品亚洲专区| 一区二区三区国产豹纹内裤在线 | 岛国精品在线播放| 精品一区二区三区久久| 五月婷婷综合激情| 一区二区三区四区中文字幕| 国产精品久久久久永久免费观看| 精品国产乱码久久久久久免费| 91精品国产综合久久福利| 色婷婷国产精品久久包臀| 国产精品1区二区.| 国产一区二区看久久| 蜜臀精品一区二区三区在线观看| 亚洲国产一区二区在线播放| 亚洲欧美日韩国产另类专区| 欧美高清一级片在线观看| 国产三级精品视频| 国产日产欧美一区二区三区| 精品国产一区二区三区av性色| 678五月天丁香亚洲综合网| 欧美体内she精视频| 欧美日韩视频在线第一区| 在线观看三级视频欧美| 91国产精品成人| 欧美无砖专区一中文字| 欧美色男人天堂| 欧美美女一区二区三区| 欧美电影一区二区| 日韩亚洲欧美在线| 久久免费午夜影院| 国产日韩欧美一区二区三区综合| 国产欧美日韩另类一区| 国产精品美女久久久久高潮| 国产日韩视频一区二区三区| 国产精品色婷婷| 亚洲激情综合网| 三级影片在线观看欧美日韩一区二区| 石原莉奈在线亚洲二区| 激情国产一区二区| 成人免费视频一区二区| 色婷婷av一区| 5566中文字幕一区二区电影| 日韩欧美亚洲国产另类| 国产女同互慰高潮91漫画| 一区免费观看视频| 一区二区成人在线观看| 日韩av中文字幕一区二区三区| 久久91精品国产91久久小草 | 欧美国产精品中文字幕| 亚洲欧美乱综合| 免费在线观看一区| 国产·精品毛片| 欧美日韩精品系列| xfplay精品久久| 亚洲欧美电影院| 久久国产免费看| 91亚洲国产成人精品一区二区三| 欧美日韩免费电影| 国产欧美日韩激情| 亚洲高清视频中文字幕| 国产精品一区在线观看你懂的| 91免费版在线看| 日韩欧美国产三级| 亚洲三级理论片| 国产一区二区三区在线观看免费 | 亚洲视频狠狠干| 日产欧产美韩系列久久99| 国产精品白丝av| 欧美日韩国产美| 亚洲国产精品精华液ab| 日本午夜一区二区| 欧美v亚洲v综合ⅴ国产v| 18成人在线观看| 麻豆国产欧美日韩综合精品二区 | 国产精品色呦呦| 日韩二区三区四区| 91小宝寻花一区二区三区| 日韩欧美一区二区久久婷婷| 一区二区三区免费在线观看| 国产成人精品午夜视频免费| 7777精品伊人久久久大香线蕉最新版| 国产清纯美女被跳蛋高潮一区二区久久w | 91天堂素人约啪| 99麻豆久久久国产精品免费 | 成人在线视频一区二区| 欧美人动与zoxxxx乱| 亚洲男人都懂的| 国产a久久麻豆| 精品少妇一区二区三区视频免付费| 夜夜嗨av一区二区三区四季av| 国产不卡免费视频| 久久婷婷久久一区二区三区| 亚洲444eee在线观看| 91麻豆精品一区二区三区| 欧美激情一区二区三区蜜桃视频 | 亚洲综合在线视频| 99久久精品国产麻豆演员表| 久久理论电影网| 国产一区视频网站| 精品欧美久久久| 免费成人深夜小野草| 日韩视频一区二区三区在线播放| 婷婷综合五月天| 欧美精品丝袜中出| 日韩电影一区二区三区| 欧美一区二区三区视频在线|