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

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

?? char check_key.c

?? des加解密密鑰的驗證檢測算法
?? C
字號:
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
//***********************************************************************************************
void  key_change(  int k[64], int keyout[17][48])   //子函數,根據輸入的64bits密鑰,產生相應的16種子密鑰;
{   
	int  key[17][56];
	int  c[17][28];
    int  d[17][28];
    int  i=1,t;
	int  j;
    int  m,n;
    int  k0[56]; //定義的子函數變量;
    //*******************************************************************************************
	k0[0]=k[56];k0[1]=k[48];k0[2]=k[40];k0[3]=k[32];k0[4]=k[24];k0[5]=k[16];k0[6]=k[8];
    k0[7]=k[0];k0[8]=k[57];k0[9]=k[49];k0[10]=k[41];k0[11]=k[33];k0[12]=k[25];k0[13]=k[17];
    k0[14]=k[9];k0[15]=k[1];k0[16]=k[58];k0[17]=k[50];k0[18]=k[42];k0[19]=k[34];k0[20]=k[26];
    k0[21]=k[18];k0[22]=k[10];k0[23]=k[2];k0[24]=k[59];k0[25]=k[51];k0[26]=k[43];k0[27]=k[35];
    k0[28]=k[62];k0[29]=k[54];k0[30]=k[46];k0[31]=k[38];k0[32]=k[30];k0[33]=k[22];k0[34]=k[14];
    k0[35]=k[6];k0[36]=k[61];k0[37]=k[53];k0[38]=k[45];k0[39]=k[37];k0[40]=k[29];k0[41]=k[21];
    k0[42]=k[13];k0[43]=k[5];k0[44]=k[60];k0[45]=k[52];k0[46]=k[44];k0[47]=k[36];k0[48]=k[28];
    k0[49]=k[20];k0[50]=k[12];k0[51]=k[4];k0[52]=k[27];k0[53]=k[19];k0[54]=k[11];k0[55]=k[3];
    //******************************************************************************************
	      
    for(t=0;t<28;t++)       //循環賦值于c[0][28];
    {
		c[0][t]=k0[t];
    }

    for(t=28;t<56;t++)      //循環賦值于d[0][28];
	{
	    d[0][t-28]=k0[t];
	}
	
    do
	{
		for(t=1;t<28;t++)       //數據的循環左移1位,并保存于下一行數據中;
		{
			m=c[i-1][0];
			c[i][t-1]=c[i-1][t];
			c[i][27]=m;

            m=d[i-1][0];
			d[i][t-1]=d[i-1][t];
			d[i][27]=m;
		}
	    i++;
			
	}while(i<=2);	        //2次左移1位的循環;	
		  
	do
	{
		for(t=2;t<28;t++)    //數據的循環左移2位,并保存于下一行數據中;
		{
			m=c[i-1][0];
			n=c[i-1][1];
			c[i][t-2]=c[i-1][t];
			c[i][26]=m;
			c[i][27]=n;


            m=d[i-1][0];
		    n=d[i-1][1];
		    d[i][t-2]=d[i-1][t];
			d[i][26]=m;
			d[i][27]=n;
		}
	    i++;
	 }while(i<=8);	         //6次左移2位的循環;	
	 for(t=1;t<28;t++)      //數據的循環左移1位,并保存于下一行數據中;
	 {
         m=c[i-1][0];
	     c[i][t-1]=c[i-1][t];
		 c[i][27]=m;

         m=d[i-1][0];
		 d[i][t-1]=d[i-1][t];
		 d[i][27]=m;
	 }
	  i++;	
		  
	 do
	 {
		 for(t=2;t<28;t++)    //數據的循環左移2位,并保存于下一行數據中;
		 {
			 m=c[i-1][0];
			 n=c[i-1][1];
			 c[i][t-2]=c[i-1][t];
			 c[i][26]=m;
			 c[i][27]=n;


             m=d[i-1][0];
			 n=d[i-1][1];
			 d[i][t-2]=d[i-1][t];
			 d[i][26]=m;
			 d[i][27]=n;
		 }
		  i++;
			
	  }while(i<=15);         //6次左移2位的循環;
	  for(t=1;t<28;t++)      //數據的循環左移1位,并保存于下一行數據中;
	  {
          m=c[i-1][0];
		  c[i][t-1]=c[i-1][t];
		  c[i][27]=m;

          m=d[i-1][0];
	      d[i][t-1]=d[i-1][t];
		  d[i][27]=m;
	  }                    //二維數組c[17][28],d[17][28]的數據全部產生并保存;
			  	 
	  for(i=0;i<17;i++)     //雙重循環實現將c[17][28],d[17][28]的數據合并,存于key[17][56];
	  {
		 for(j=0;j<28;j++)
		 {
			key[i][j]=c[i][j];
            key[i][j+28]=d[i][j];
		 }
	  }
	
    for(i=1;i<17;i++)    //置換選擇2的數據轉換,聲稱16種子密鑰;
    {
		keyout[i][0]=key[i][13];keyout[i][1]=key[i][16];keyout[i][2]=key[i][10];keyout[i][3]=key[i][23];keyout[i][4]=key[i][0];keyout[i][5]=key[i][4];
		keyout[i][6]=key[i][2];keyout[i][7]=key[i][27];keyout[i][8]=key[i][14];keyout[i][9]=key[i][5];keyout[i][10]=key[i][20];keyout[i][11]=key[i][9];
		keyout[i][12]=key[i][22];keyout[i][13]=key[i][18];keyout[i][14]=key[i][11];keyout[i][15]=key[i][3];keyout[i][16]=key[i][25];keyout[i][17]=key[i][7];
		keyout[i][18]=key[i][15];keyout[i][19]=key[i][6];keyout[i][20]=key[i][26];keyout[i][21]=key[i][19];keyout[i][22]=key[i][12];keyout[i][23]=key[i][1];
		keyout[i][24]=key[i][40];keyout[i][25]=key[i][51];keyout[i][26]=key[i][30];keyout[i][27]=key[i][36];keyout[i][28]=key[i][46];keyout[i][29]=key[i][54];
		keyout[i][30]=key[i][29];keyout[i][31]=key[i][39];keyout[i][32]=key[i][50];keyout[i][33]=key[i][44];keyout[i][34]=key[i][32];keyout[i][35]=key[i][47];
		keyout[i][36]=key[i][43];keyout[i][37]=key[i][48];keyout[i][38]=key[i][38];keyout[i][39]=key[i][55];keyout[i][40]=key[i][33];keyout[i][41]=key[i][52];
		keyout[i][42]=key[i][45];keyout[i][43]=key[i][41];keyout[i][44]=key[i][49];keyout[i][45]=key[i][35];keyout[i][46]=key[i][28];keyout[i][47]=key[i][31];
  
	 }
}
/**************************************************************************************************************
函數功能:對輸入的密鑰進行奇偶和加密強度的特性驗證;
入口參數:int key[8];
出口參數:返回字符類型值;
          '0': ok!
		  '1': 密鑰奇偶校驗錯誤!
          '2': 弱密鑰!
		  '3': 半弱密鑰!
		  '4': 可能的弱密鑰!
**************************************************************************************************************/
char check_key(int key[8])    
{   
	int k[64];
	int check_key[64];
	int keyout[17][48];
    int key_byte[8];
    int i,a;
	int n=1;
	int m=0;
  
    for(i=0; i<8; i++)           
	{
		key_byte[i]=key[i];
	}

    for(a=0;a<8;a++)          //雙重循環將8byte的字符轉換成64bits的二進制碼k[64];
	 {
		for(i=0;i<8;i++)
		{
			if(key_byte[a]%2==1)
			{
				k[(a*8)+7-i]=1;
			}
			else
			{
				k[(a*8)+7-i]=0;
			}
	        
		    key_byte[a]=key_byte[a]>>1;
		}
	 }
	//******************************************************************************************
    for(i=0;i<64;i++)               //循環將k[64]賦值于check_key[64];
	{
		check_key[i]=k[i];
	}

    for(a=0;a<8;a++)               //雙重循環對輸入的密鑰進行奇偶校驗;                       
	{
		for(i=1;i<8;i++)
		{	
			check_key[a*8+i]=check_key[a*8+i]+check_key[a*8+i-1];
            check_key[a*8+i]&=0x01;
		}

        if(check_key[a*8+7]==1)
			continue;
		else
		{
           return '1';  
		}                 //奇偶校驗錯誤,返回0;			
	 }
	//****************************************************************************************    
    key_change(  k,  keyout);       //調用子函數key(),返回16 種子密鑰keyout[17][48];
	
    //****************************************************************************************

    for(a=1;a<16;a++)        //對輸出的子密鑰進行加密強度檢驗;
	{   
		m=0;
		for(i=0;i<48;i++)
		{   
	    	if(keyout[1][i]==keyout[a+1][i])
			{	
			    m=m+1;
			}	
		       
		}
		printf("\n");
		if(m==48)
		{
			n=n+1;			
		}
	}

	if(n==16)              //檢驗密碼對代碼的加密強度,返回預定值;
	   return '2';
	else if(n==8)
	   return '3';
	else if(n==4)
	   return '4';
	else if(n<4)
	   return '0';
}

//*****************************************************************************************
void main()
{   
	int  key[8];
	int  i;
	char r;

	do
	{
	printf("Please input the key[8] datas:\n");    
    for(i=0; i<8; i++)           //循環實現8byte的密鑰數據輸入;
	{
        scanf("%x",&key[i]);
	}   
	   //******************************************
	    r=check_key( key);  //調用密鑰校驗函數;
	   //******************************************
		printf("r=%c\n",r);     //密碼的加密性能檢驗;
    if(r=='1')
		printf("The input key[8] is error...\n");
	else if(r=='2')
		printf("The input key has no encryption strength,please change another one...\n");
	else if(r=='3')
		printf("The input key has more less encryption strength,please change another one...\n");
	else if(r=='4')
		printf("The input key has less encryption strength,please change another one...\n");
	}while(r!='0');
	
	printf("The input key canbe  used in encryption!!!");
	
	getch();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美老肥妇做.爰bbww视频| 欧美一区二区成人6969| 91九色02白丝porn| 欧美日韩一区高清| 精品成a人在线观看| 亚洲国产精品天堂| 久久99精品久久只有精品| 国产成人av电影在线| 欧美午夜片在线看| 国产精品三级av| 日韩电影在线看| 91偷拍与自偷拍精品| 精品欧美一区二区久久 | 久久男人中文字幕资源站| 亚洲视频一区二区在线| 激情国产一区二区| 欧美在线视频全部完| 国产精品久久久久桃色tv| 麻豆精品一区二区三区| 欧美唯美清纯偷拍| 亚洲美女少妇撒尿| a4yy欧美一区二区三区| 久久综合狠狠综合久久激情| 婷婷国产在线综合| 7777精品伊人久久久大香线蕉完整版| 综合久久久久久| 99精品视频免费在线观看| 国产人成一区二区三区影院| 欧美96一区二区免费视频| 久久视频一区二区| 日韩va亚洲va欧美va久久| 欧美男生操女生| 欧美美女一区二区三区| 亚洲bt欧美bt精品777| 亚洲精品一二三| 欧洲激情一区二区| 日本美女视频一区二区| 欧美一激情一区二区三区| 精品夜夜嗨av一区二区三区| 亚洲欧美激情插| av一区二区不卡| 一区二区三区精品在线观看| 欧美日韩一区视频| 精品一区二区三区的国产在线播放| 欧美一级片免费看| 不卡在线视频中文字幕| 亚洲mv大片欧洲mv大片精品| 在线电影欧美成精品| 国产综合久久久久影院| 亚洲视频资源在线| 精品国产露脸精彩对白| 欧美色图12p| 成人午夜av影视| 精品一区二区在线免费观看| 亚洲精品欧美激情| 久久亚洲春色中文字幕久久久| 91视频.com| 国产麻豆精品theporn| 亚洲一区二区三区精品在线| 国产精品网友自拍| 日韩亚洲欧美成人一区| 日本黄色一区二区| 岛国精品在线观看| 国产一区二区三区日韩| 日韩精品五月天| 肉色丝袜一区二区| 亚洲一级二级三级| 亚洲天堂2016| 亚洲综合区在线| 亚洲三级免费电影| 亚洲欧洲精品一区二区精品久久久| 久久久久国产精品厨房| 精品久久人人做人人爰| 欧美大白屁股肥臀xxxxxx| 91精品国产麻豆| 精品福利一区二区三区| 精品日韩一区二区三区免费视频| 日韩午夜电影在线观看| 精品日韩99亚洲| 国产欧美日本一区视频| 亚洲自拍偷拍九九九| 亚洲国产一区二区视频| 日韩电影一区二区三区四区| 蜜臀99久久精品久久久久久软件| 欧美bbbbb| 白白色 亚洲乱淫| 一本大道久久a久久精品综合| 色8久久人人97超碰香蕉987| 欧美网站大全在线观看| 日韩女优制服丝袜电影| 日本一区二区三区四区在线视频 | 日韩国产在线观看一区| 久久精品国产久精国产爱| 国产高清成人在线| 欧美午夜宅男影院| 久久九九全国免费| 亚洲成人三级小说| 国产成人99久久亚洲综合精品| 一本色道综合亚洲| 久久久亚洲精华液精华液精华液| 亚洲欧美日韩国产综合| 久久99久久99| 欧美日韩综合色| 国产精品久久久久久久久免费相片| 午夜精品久久久久久不卡8050| 粉嫩一区二区三区在线看| 欧美一区二区三区思思人| 最新国产精品久久精品| 国产精品1区2区| 日韩欧美国产wwwww| 亚洲国产婷婷综合在线精品| av动漫一区二区| 久久久久久久久伊人| 美女脱光内衣内裤视频久久网站 | 免费成人美女在线观看.| 欧美午夜免费电影| 亚洲aaa精品| 在线视频一区二区三| 一区二区三区欧美久久| 成人性生交大片免费看视频在线 | 国产精品18久久久久久久久| 欧美精品乱人伦久久久久久| 亚洲国产一区二区在线播放| 欧美视频日韩视频| 视频一区二区三区中文字幕| 欧美精品xxxxbbbb| 日本亚洲三级在线| 久久影视一区二区| 国产电影精品久久禁18| 中文字幕一区二区日韩精品绯色| 高清国产一区二区| 亚洲欧美日韩在线| 欧美色视频一区| 蜜臀av一区二区三区| 久久蜜桃av一区二区天堂| 处破女av一区二区| 亚洲成a人在线观看| 26uuu国产日韩综合| 一本到不卡免费一区二区| 日韩黄色小视频| 亚洲欧美日韩小说| 精品国产精品一区二区夜夜嗨| 成人午夜又粗又硬又大| 五月激情综合婷婷| 日韩一区日韩二区| 日韩美女天天操| 91久久精品一区二区二区| 国产麻豆成人精品| 蜜桃久久精品一区二区| 亚洲综合色视频| 中文字幕av一区二区三区 | 亚洲综合色噜噜狠狠| 欧美高清在线一区| 欧美成人女星排名| 欧美日韩三级在线| 在线免费观看一区| 97精品超碰一区二区三区| 激情综合五月婷婷| 老汉av免费一区二区三区 | 色网站国产精品| av不卡免费电影| 盗摄精品av一区二区三区| 国产麻豆91精品| 国产成人免费视频网站| 狠狠色狠狠色综合系列| 精品一区二区在线观看| 精品一区二区三区欧美| 精品在线视频一区| 成人激情开心网| 99久精品国产| 在线一区二区观看| 欧美亚洲国产bt| 欧美三级资源在线| 精品国产一区久久| 日韩毛片视频在线看| 一级特黄大欧美久久久| 亚洲v精品v日韩v欧美v专区| 日韩成人午夜电影| 国产一区二区调教| www.一区二区| 欧美伊人久久久久久午夜久久久久| 欧美日韩高清一区二区| 欧美一区二区三区人| 国产精品天美传媒沈樵| 亚洲午夜在线视频| 精品亚洲porn| 在线观看日韩精品| 久久伊人蜜桃av一区二区| 亚洲黄色片在线观看| 韩国一区二区视频| 欧美综合欧美视频| 国产精品你懂的在线欣赏| 亚洲黄色小说网站| 国产福利一区二区三区视频在线 | 极品少妇一区二区三区精品视频| 国产资源精品在线观看| 欧美综合在线视频| 日本一区二区三区在线不卡| 午夜精品久久久久久| 97超碰欧美中文字幕|