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

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

?? des.h

?? DES及3DES算法
?? H
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#define DES_KEY_SZ 	(sizeof(des_cblock))
#define DES_ENCRYPT	1
#define DES_DECRYPT	0


#define C_Block des_cblock
#define Key_schedule des_key_schedule
#define ENCRYPT DES_ENCRYPT
#define DECRYPT DES_DECRYPT
#define KEY_SZ DES_KEY_SZ


static int check_parity();
static unsigned char exchange[256]={
   0,  128,    2,  130,    4,  132,    6,  134,    8,  136,   10,  138,   12,  140,   14,
  142,   16,  144,   18,  146,   20,  148,   22,  150,   24,  152,   26,  154,   28,  156,
   30,  158,   32,  160,   34,  162,   36,  164,   38,  166,   40,  168,   42,  170,   44,
  172,   46,  174,   48,  176,   50,  178,   52,  180,   54,  182,   56,  184,   58,  186,
   60,  188,   62,  190,   64,  192,   66,  194,   68,  196,   70,  198,   72,  200,   74,
  202,   76,  204,   78,  206,   80,  208,   82,  210,   84,  212,   86,  214,   88,  216,
   90,  218,   92,  220,   94,  222,   96,  224,   98,  226,  100,  228,  102,  230,  104,
  232,  106,  234,  108,  236,  110,  238,  112,  240,  114,  242,  116,  244,  118,  246,
  120,  248,  122,  250,  124,  252,  126,  254,    1,  129,    3,  131,    5,  133,    7,
  135,    9,  137,   11,  139,   13,  141,   15,  143,   17,  145,   19,  147,   21,  149,
   23,  151,   25,  153,   27,  155,   29,  157,   31,  159,   33,  161,   35,  163,   37,
  165,   39,  167,   41,  169,   43,  171,   45,  173,   47,  175,   49,  177,   51,  179,
   53,  181,   55,  183,   57,  185,   59,  187,   61,  189,   63,  191,   65,  193,   67,
  195,   69,  197,   71,  199,   73,  201,   75,  203,   77,  205,   79,  207,   81,  209,
   83,  211,   85,  213,   87,  215,   89,  217,   91,  219,   93,  221,   95,  223,   97,
  225,   99,  227,  101,  229,  103,  231,  105,  233,  107,  235,  109,  237,  111,  239,
  113,  241,  115,  243,  117,  245,  119,  247,  121,  249,  123,  251,  125,  253,  127,
  255};

int des_check_key=0;

void des_set_odd_parity(des_cblock *key)
{
	int i;

	for (i=0; i<DES_KEY_SZ; i++)
		(*key)[i]=odd_parity[(*key)[i]];
}

static int check_parity(des_cblock *key)
{
	int i;

	for (i=0; i<DES_KEY_SZ; i++)
		{
		if ((*key)[i] != odd_parity[(*key)[i]])
			return(0);
		}
	return(1);
}

#define NUM_WEAK_KEY	16
static des_cblock weak_keys[NUM_WEAK_KEY]={
	/* weak keys */
	0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
	0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
	0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
	0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
	/* semi-weak keys */
	0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,
	0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,
	0x1F,0xE0,0x1F,0xE0,0x0E,0xF1,0x0E,0xF1,
	0xE0,0x1F,0xE0,0x1F,0xF1,0x0E,0xF1,0x0E,
	0x01,0xE0,0x01,0xE0,0x01,0xF1,0x01,0xF1,
	0xE0,0x01,0xE0,0x01,0xF1,0x01,0xF1,0x01,
	0x1F,0xFE,0x1F,0xFE,0x0E,0xFE,0x0E,0xFE,
	0xFE,0x1F,0xFE,0x1F,0xFE,0x0E,0xFE,0x0E,
	0x01,0x1F,0x01,0x1F,0x01,0x0E,0x01,0x0E,
	0x1F,0x01,0x1F,0x01,0x0E,0x01,0x0E,0x01,
	0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1,0xFE,
	0xFE,0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1};

int des_is_weak_key(des_cblock *key)
{
	int i;

	for (i=0; i<NUM_WEAK_KEY; i++)
		/* Added == 0 to comparision, I obviously don't run
		 * this section very often :-(, thanks to
		 * engineering for the fix
		 * eay 93/06/29 */
		if (memcmp(weak_keys[i],key,sizeof(key)) == 0) return(1);
	return(0);
}

/* NOW DEFINED IN des_local.h
 * See ecb_encrypt.c for a pseudo description of these macros. 
 * #define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
 * 	(b)^=(t),\
 * 	(a)=((a)^((t)<<(n))))
 */

#define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)),\
	(a)=(a)^(t)^(t>>(16-(n))))

static char shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0};

/* return 0 if key parity is odd (correct),
 * return -1 if key parity error,
 * return -2 if illegal weak key.
 */
int des_set_key(des_cblock *key,des_key_schedule schedule)
{
	register unsigned long c,d,t,s;
	register unsigned char *in;
	register unsigned long *k;
	register int i;

	if (des_check_key==1)
		{
		if (!check_parity(key))
		{
			return -1;
		}
		if (des_is_weak_key(key))
		    return -2;
		}

	k=(unsigned long *)schedule;
	in=(unsigned char *)key;

	c2l(in,c);
	c2l(in,d);



	/* I now do it in 47 simple operations :-)
	 * Thanks to John Fletcher (john_fletcher@lccmail.ocf.llnl.gov)
	 * for the inspiration. :-) */
	PERM_OP (d,c,t,4,0x0f0f0f0f);
	HPERM_OP(c,t,-2,0xcccc0000);
	HPERM_OP(d,t,-2,0xcccc0000);
	PERM_OP (d,c,t,1,0x55555555);
	PERM_OP (c,d,t,8,0x00ff00ff);
	PERM_OP (d,c,t,1,0x55555555);
	d=	(((d&0x000000ff)<<16)| (d&0x0000ff00)     |
		 ((d&0x00ff0000)>>16)|((c&0xf0000000)>>4));
	c&=0x0fffffff;

	for (i=0; i<ITERATIONS; i++)
		{
		if (shifts2[i])
			{ c=((c>>2)|(c<<26)); d=((d>>2)|(d<<26)); }
		else
			{ c=((c>>1)|(c<<27)); d=((d>>1)|(d<<27)); }
		c&=0x0fffffff;
		d&=0x0fffffff;
		/* could be a few less shifts but I am to lazy at this
		 * point in time to investigate */
		s=	des_skb[0][ (c    )&0x3f                ]|
			des_skb[1][((c>> 6)&0x03)|((c>> 7)&0x3c)]|
			des_skb[2][((c>>13)&0x0f)|((c>>14)&0x30)]|
			des_skb[3][((c>>20)&0x01)|((c>>21)&0x06) |
						  ((c>>22)&0x38)];
		t=	des_skb[4][ (d    )&0x3f                ]|
			des_skb[5][((d>> 7)&0x03)|((d>> 8)&0x3c)]|
			des_skb[6][ (d>>15)&0x3f                ]|
			des_skb[7][((d>>21)&0x0f)|((d>>22)&0x30)];

		/* table contained 0213 4657 */
		*(k++)=((t<<16)|(s&0x0000ffff))&0xffffffff;
		s=     ((s>>16)|(t&0xffff0000));
		
		s=(s<<4)|(s>>28);
		*(k++)=s&0xffffffff;
		}
	return(0);
}

int des_key_sched(des_cblock *key,des_key_schedule schedule)
{
	return(des_set_key(key,schedule));
}



int des_encrypt(unsigned long *input,
				unsigned long *output,
				des_key_schedule ks,
				int encrypt)
{
	register unsigned long l,r,t,u;

	register int i;
	register unsigned long *s;

	l=input[0];
	r=input[1];

	/* do IP */
	PERM_OP(r,l,t, 4,0x0f0f0f0f);
	PERM_OP(l,r,t,16,0x0000ffff);
	PERM_OP(r,l,t, 2,0x33333333);
	PERM_OP(l,r,t, 8,0x00ff00ff);
	PERM_OP(r,l,t, 1,0x55555555);
	/* r and l are reversed - remember that :-) - fix
	 * it in the next step */

	/* Things have been modified so that the initial rotate is
	 * done outside the loop.  This required the
	 * des_SPtrans values in sp.h to be rotated 1 bit to the right.
	 * One perl script later and things have a 5% speed up on a sparc2.
	 * Thanks to Richard Outerbridge <71755.204@CompuServe.COM>
	 * for pointing this out. */
	t=(r<<1)|(r>>31);
	r=(l<<1)|(l>>31);
	l=t;

	/* clear the top bits on machines with 8byte longs */
	l&=0xffffffff;
	r&=0xffffffff;

	s=(unsigned long *)ks;
	/* I don't know if it is worth the effort of loop unrolling the
	 * inner loop */
	if (encrypt)
		{
		for (i=0; i<32; i+=4)
			{
			D_ENCRYPT(l,r,i+0); /*  1 */
			D_ENCRYPT(r,l,i+2); /*  2 */
			}
		}
	else
		{
		for (i=30; i>0; i-=4)
			{
			D_ENCRYPT(l,r,i-0); /* 16 */
			D_ENCRYPT(r,l,i-2); /* 15 */
			}
		}
	l=(l>>1)|(l<<31);
	r=(r>>1)|(r<<31);
	/* clear the top bits on machines with 8byte longs */
	l&=0xffffffff;
	r&=0xffffffff;

	/* swap l and r
	 * we will not do the swap so just remember they are
	 * reversed for the rest of the subroutine
	 * luckily FP fixes this problem :-) */

	PERM_OP(r,l,t, 1,0x55555555);
	PERM_OP(l,r,t, 8,0x00ff00ff);
	PERM_OP(r,l,t, 2,0x33333333);
	PERM_OP(l,r,t,16,0x0000ffff);
	PERM_OP(r,l,t, 4,0x0f0f0f0f);

	output[0]=l;
	output[1]=r;
	l=r=t=u=0;
	return(0);
}

int des_ecb_encrypt(des_cblock *input,des_cblock *output,des_key_schedule ks,int encrypt)
{
	register unsigned long l0,l1;
	register unsigned char *in,*out;
	unsigned long ll[2];

	in=(unsigned char *)input;
	out=(unsigned char *)output;
	c2l(in,l0);
	c2l(in,l1);
	ll[0]=l0;
	ll[1]=l1;
	des_encrypt(ll,ll,ks,encrypt);
	l0=ll[0];
	l1=ll[1];
	l2c(l0,out);
	l2c(l1,out);
	l0=l1=ll[0]=ll[1]=0;
	return(0);
}


int DesEncrypt_ECB(unsigned char *k, unsigned char *in, unsigned char *out,long int l,int f)/*1加密,0解密*/
{
	des_key_schedule ks;
	unsigned char temp[8];
	long int s,i,j,w;

	
	if(f==ENCRYPT)
	{
    	des_set_key((C_Block *)k,ks);
		w=l%8;
		s=l;
		l=l-w;
		for(i=0;i<l;i+=8)
		{			
			des_ecb_encrypt((des_cblock *)(in+i),(des_cblock *)(out+i),ks,1);
		}
		/*短塊處理的方法之一*/
		if(w!=0)
		{
			
			for(j=0;j<8;j++)temp[j]=(unsigned char)j;
			des_ecb_encrypt((des_cblock *)temp,(des_cblock *)temp,ks,1);

			for(j=0;j<w;j++)
				out[i+j]=in[i+j]^temp[j];
		}
 	}
    
    else if(f==DECRYPT)
	{
		des_set_key((C_Block *)k,ks);
		w=l%8;
		s=l;
		l=l-w;
		for(i=0;i<l;i+=8)
		{			
			des_ecb_encrypt((des_cblock *)(in+i),(des_cblock *)(out+i),ks,0);
		}
		/*短塊處理的方法之一*/
		if(w!=0)
		{
			
			for(j=0;j<8;j++)temp[j]=(unsigned char)j;
			des_ecb_encrypt((des_cblock *)temp,(des_cblock *)temp,ks,1);
			for(j=0;j<w;j++)
				out[i+j]=in[i+j]^temp[j];
		}
	}
	return 0;
}

void TriDes (unsigned char *Key, unsigned char *Input, unsigned char *Output, int mode)
{
	unsigned char temp[8];
	DesEncrypt_ECB(Key, Input, Output, 8, mode);/*1加密,0解密*/
	DesEncrypt_ECB(Key+8, Output, temp, 8, 1-mode);/*1加密,0解密*/
	DesEncrypt_ECB(Key, temp, Output, 8, mode);/*1加密,0解密*/
}

/*only for test
#include <stdio.h>
#include <stdlib.h>
main()
{
	int i;
	char *key="12345678";
	char *mess="hello!world";
	char code[200];
	char mess2[200];
	DesEncrypt_ECB(key,mess,code,strlen(mess)+1,ENCRYPT);
	code[strlen(mess)+1]=0;
	puts(code);
	i=strlen(code);
	DesEncrypt_ECB(key,code,mess2,strlen(mess)+1,DECRYPT);
	puts(mess2);
	return 0;

}
*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大白屁股肥臀xxxxxx| 亚洲一区二区三区三| 国产精品美女久久久久久久网站| 久久久久久久久久久久久夜| 国产亚洲欧美日韩日本| 国产精品免费视频网站| 亚洲成在人线在线播放| 久久99国产精品久久99| eeuss鲁片一区二区三区在线看| 一本久久精品一区二区| 日韩欧美在线观看一区二区三区| 欧美大片在线观看| 亚洲视频图片小说| 免费视频一区二区| 色猫猫国产区一区二在线视频| 欧美一级搡bbbb搡bbbb| 亚洲欧洲日韩综合一区二区| 午夜精品123| 一本色道综合亚洲| 国产午夜精品久久| 免费观看在线色综合| 91麻豆高清视频| 欧美视频在线观看一区| 91精品一区二区三区久久久久久| 国产日韩欧美制服另类| 五月天视频一区| 国产精品乱码一区二区三区软件 | 亚洲国产乱码最新视频| 国产精品66部| 久久综合久久久久88| 亚洲成人综合在线| 一本大道久久a久久精二百| 久久精品一区二区三区四区| 蜜臀av一区二区在线观看| 欧美丝袜丝交足nylons| 国产精品三级视频| 国产精品456| 精品久久久久av影院| 免费观看成人av| 91精品国产综合久久小美女| 亚洲成人精品一区| 欧美日韩一区二区三区视频| 一区二区三区加勒比av| 91麻豆国产福利在线观看| 亚洲美女区一区| 欧美在线免费播放| 午夜精品一区二区三区电影天堂| 91啪在线观看| 亚洲一区二区三区影院| 91久久线看在观草草青青| 亚洲国产精品嫩草影院| 欧美一区二区三区婷婷月色| 日韩av午夜在线观看| 日韩视频在线永久播放| 日韩一区在线播放| 国产精选一区二区三区| 中文字幕一区二区三区在线观看| 成人国产一区二区三区精品| 中文字幕乱码一区二区免费| bt欧美亚洲午夜电影天堂| 亚洲欧美一区二区三区国产精品| 91精彩视频在线| 久久福利资源站| 亚洲视频 欧洲视频| 欧美疯狂做受xxxx富婆| 国产一区二区精品久久91| 亚洲欧美国产77777| 欧美日韩国产天堂| 精品一区二区三区在线播放视频| 国产精品妹子av| 精品视频123区在线观看| 国产一区不卡在线| 亚洲一区在线视频| 国产欧美日韩三级| 91精品国产综合久久精品性色| 国产精品99久久久久久久女警 | 日本视频免费一区| 国产精品免费人成网站| 欧美大尺度电影在线| 在线亚洲高清视频| 99综合影院在线| 国产东北露脸精品视频| 蜜臀av性久久久久蜜臀av麻豆 | 亚洲欧洲国产日本综合| 日韩午夜电影在线观看| 欧美在线制服丝袜| 99麻豆久久久国产精品免费优播| 九色综合狠狠综合久久| 亚洲大型综合色站| 午夜精品一区在线观看| 亚洲一区成人在线| 亚洲精品成人少妇| 精品乱码亚洲一区二区不卡| 91视频在线观看| 91蝌蚪porny成人天涯| 成人黄页毛片网站| 成人性生交大合| 成人视屏免费看| 99re在线视频这里只有精品| 成人激情动漫在线观看| 成人性色生活片| 粗大黑人巨茎大战欧美成人| 成人av在线资源网| 色综合激情五月| 欧美日韩精品系列| 日韩亚洲电影在线| 久久久久88色偷偷免费| 欧美国产一区在线| 一区二区三区久久| 婷婷开心激情综合| 国产成人在线色| 91同城在线观看| 欧美剧情电影在线观看完整版免费励志电影| 一本一道久久a久久精品| 91精品国产麻豆国产自产在线| 欧美va亚洲va在线观看蝴蝶网| 欧美国产一区二区| 亚洲自拍偷拍图区| 国产在线播放一区二区三区| 成人激情开心网| 日韩网站在线看片你懂的| 欧美国产丝袜视频| 日韩高清在线观看| 国产美女精品在线| 欧美日韩在线三区| 国产亚洲午夜高清国产拍精品| 亚洲美女在线国产| 国产老女人精品毛片久久| 欧洲国内综合视频| 国产精品久久网站| 日韩影院免费视频| 国产一区美女在线| 欧美吞精做爰啪啪高潮| 欧美国产97人人爽人人喊| 无码av中文一区二区三区桃花岛| 奇米影视一区二区三区小说| 成人一级片在线观看| 国产v日产∨综合v精品视频| 91啪九色porn原创视频在线观看| 日韩欧美成人一区二区| 亚洲国产另类精品专区| av网站一区二区三区| 国产午夜精品久久久久久免费视| 日韩av电影一区| 91麻豆精品国产自产在线观看一区 | 亚洲国产欧美另类丝袜| 99久久精品免费观看| 国产精品丝袜一区| 成人网页在线观看| 中文字幕国产一区| 国产大陆精品国产| 国产人伦精品一区二区| 国产盗摄一区二区| 国产精品久久毛片a| 91在线视频网址| 一区二区三区在线看| 欧洲生活片亚洲生活在线观看| 亚洲激情自拍视频| 欧美午夜精品久久久久久孕妇| 午夜欧美大尺度福利影院在线看| 欧美日韩在线播放一区| 日韩不卡一二三区| 久久久久久亚洲综合影院红桃| 国产成人高清在线| 亚洲视频一区在线观看| 欧美精品一二三| 国产精品资源网| 亚洲免费观看高清完整版在线观看 | 国精品**一区二区三区在线蜜桃| 2023国产精品自拍| 色综合视频在线观看| 亚洲国产一区二区三区| 久久色视频免费观看| a美女胸又www黄视频久久| 日韩一区在线播放| 欧美一区二区美女| 成人理论电影网| 免费日韩伦理电影| 亚洲色图在线播放| 精品美女在线观看| 91影视在线播放| 亚洲一区二区美女| 国产日产欧美一区| 欧美日韩国产一区| 91在线视频免费观看| 国产一区二区三区在线观看精品 | 欧美日本一区二区三区| 国产成人午夜99999| 亚洲成在人线在线播放| 国产精品日韩精品欧美在线 | 中文字幕第一页久久| 日韩一级二级三级| 在线电影欧美成精品| 91免费观看在线| 不卡av免费在线观看| 韩国三级中文字幕hd久久精品| 午夜精品久久久久久久| 一区二区三区欧美激情| 亚洲蜜臀av乱码久久精品蜜桃| 日本一区二区免费在线观看视频|