⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newddes.c

📁 C51单片机加密解密程序.C语言实现加密过程
💻 C
📖 第 1 页 / 共 2 页
字号:
    		b_Bit60=b_Bit29;
			b_Bit29=b_Bit30;
			b_Bit30=b_Bit31;
			b_Bit31=b_Bit32;
			b_Bit32=b_Bit33;
			b_Bit33=b_Bit34;
			b_Bit34=b_Bit35;
			b_Bit35=b_Bit36;
			b_Bit36=b_Bit37;
			b_Bit37=b_Bit38;
			b_Bit38=b_Bit39;
			b_Bit39=b_Bit40;
			b_Bit40=b_Bit41;
			b_Bit41=b_Bit42;
			b_Bit42=b_Bit43;
			b_Bit43=b_Bit44;
			b_Bit44=b_Bit45;
			b_Bit45=b_Bit46;
			b_Bit46=b_Bit47;
			b_Bit47=b_Bit48;
			b_Bit48=b_Bit49;
			b_Bit49=b_Bit50;
			b_Bit50=b_Bit51;
			b_Bit51=b_Bit52;
			b_Bit52=b_Bit53;
			b_Bit53=b_Bit54;
			b_Bit54=b_Bit55;
			b_Bit55=b_Bit56;
			b_Bit56=b_Bit60;
		}
		/*********************压缩置换****************/

       b_Temp1=b_Bit14;
       b_Temp2=b_Bit17;
       b_Temp3=b_Bit11;
       b_Temp4=b_Bit24;
       b_Temp5=b_Bit1;
       b_Temp6=b_Bit5;
       b_Temp7=b_Bit3;
       b_Temp8=b_Bit28;
       b_Temp9=b_Bit15;
       b_Temp10=b_Bit6;
       b_Temp11=b_Bit21;
       b_Temp12=b_Bit10;


       b_Temp13=b_Bit23;
       b_Temp14=b_Bit19;
       b_Temp15=b_Bit12;
       b_Temp16=b_Bit4;
       b_Temp17=b_Bit26;
       b_Temp18=b_Bit8;
       b_Temp19=b_Bit16;
       b_Temp20=b_Bit7;
       b_Temp21=b_Bit27;
       b_Temp22=b_Bit20;
       b_Temp23=b_Bit13;
       b_Temp24=b_Bit2;

       b_Temp25=b_Bit41;
       b_Temp26=b_Bit52;
       b_Temp27=b_Bit31;  
	   b_Temp28=b_Bit37;
       b_Temp29=b_Bit47;
       b_Temp30=b_Bit55;
       b_Temp31=b_Bit30;
       b_Temp32=b_Bit40;
       b_Temp33=b_Bit51;
       b_Temp34=b_Bit45;
       b_Temp35=b_Bit33;
       b_Temp36=b_Bit48;

       b_Temp37=b_Bit44;
       b_Temp38=b_Bit49;
       b_Temp39=b_Bit39;
       b_Temp40=b_Bit56;
       b_Temp41=b_Bit34;
       b_Temp42=b_Bit53;
       b_Temp43=b_Bit46;
       b_Temp44=b_Bit42;  
	   b_Temp45=b_Bit50;
       b_Temp46=b_Bit36;
       b_Temp47=b_Bit29;
       b_Temp48=b_Bit32;
       for(i=0;i<6;i++)	
			Childkey[k*6+i]=p_cCharToBit[i];
		/*********************************************/
	}

}
void ExpandPermutation(unsigned char *p_cExpaindPermutation,unsigned char *p_cRightInitData)
{
	memcpy(p_cCharToBit,p_cRightInitData,4);
	b_Bit1=b_Temp32;
	b_Bit2=b_Temp1;
	b_Bit3=b_Temp2;
	b_Bit4=b_Temp3;
	b_Bit5=b_Temp4;
	b_Bit6=b_Temp5;

	b_Bit7=b_Temp4;
	b_Bit8=b_Temp5;
	b_Bit9=b_Temp6;
	b_Bit10=b_Temp7;
	b_Bit11=b_Temp8;
	b_Bit12=b_Temp9;

	b_Bit13=b_Temp8;
	b_Bit14=b_Temp9;
	b_Bit15=b_Temp10;
	b_Bit16=b_Temp11;
	b_Bit17=b_Temp12;
	b_Bit18=b_Temp13;

	b_Bit19=b_Temp12;
	b_Bit20=b_Temp13;
	b_Bit21=b_Temp14;
	b_Bit22=b_Temp15;
	b_Bit23=b_Temp16;
	b_Bit24=b_Temp17;

	b_Bit25=b_Temp16;
	b_Bit26=b_Temp17;
	b_Bit27=b_Temp18;
	b_Bit28=b_Temp19;
	b_Bit29=b_Temp20;
	b_Bit30=b_Temp21;

	b_Bit31=b_Temp20;
	b_Bit32=b_Temp21;
	b_Bit33=b_Temp22;
	b_Bit34=b_Temp23;
	b_Bit35=b_Temp24;
	b_Bit36=b_Temp25;

	b_Bit37=b_Temp24;
	b_Bit38=b_Temp25;
	b_Bit39=b_Temp26;
	b_Bit40=b_Temp27;
	b_Bit41=b_Temp28;
	b_Bit42=b_Temp29;

	b_Bit43=b_Temp28;
	b_Bit44=b_Temp29;
	b_Bit45=b_Temp30;
	b_Bit46=b_Temp31;
	b_Bit47=b_Temp32;
	b_Bit48=b_Temp1;

	memcpy(p_cExpaindPermutation,p_cBitToChar,6);
}
void CompressPermutation(unsigned char *p_cCompressPermutation,unsigned char *p_cExpaindPermutation)
{
	memcpy(p_cCharToBit,p_cExpaindPermutation,6);
	
	p_cExpaindPermutation[0]=0;
	
	if(b_Temp1)p_cExpaindPermutation[0]=32;
	if(b_Temp6)p_cExpaindPermutation[0]+=16;
	if(b_Temp2)p_cExpaindPermutation[0]+=8;
	if(b_Temp3)p_cExpaindPermutation[0]+=4;
	if(b_Temp4)p_cExpaindPermutation[0]+=2;
	if(b_Temp5)p_cExpaindPermutation[0]+=1;

    p_cExpaindPermutation[1]=si[0][p_cExpaindPermutation[0]];

	p_cExpaindPermutation[0]=0;
		
	if(b_Temp7)p_cExpaindPermutation[0]=32;
	if(b_Temp12)p_cExpaindPermutation[0]+=16;
	if(b_Temp8)p_cExpaindPermutation[0]+=8;
	if(b_Temp9)p_cExpaindPermutation[0]+=4;
	if(b_Temp10)p_cExpaindPermutation[0]+=2;
	if(b_Temp11)p_cExpaindPermutation[0]+=1;
    p_cExpaindPermutation[2]=si[1][p_cExpaindPermutation[0]];

    p_cCompressPermutation[0]=p_cExpaindPermutation[1]*16+p_cExpaindPermutation[2];
    	
	p_cExpaindPermutation[0]=0;
	if(b_Temp13)p_cExpaindPermutation[0]=32;
	if(b_Temp18)p_cExpaindPermutation[0]+=16;
	if(b_Temp14)p_cExpaindPermutation[0]+=8;
	if(b_Temp15)p_cExpaindPermutation[0]+=4;
	if(b_Temp16)p_cExpaindPermutation[0]+=2;
	if(b_Temp17)p_cExpaindPermutation[0]+=1;
    p_cExpaindPermutation[1]=si[2][p_cExpaindPermutation[0]];

	p_cExpaindPermutation[0]=0;
	if(b_Temp19)p_cExpaindPermutation[0]=32;
	if(b_Temp24)p_cExpaindPermutation[0]+=16;
	if(b_Temp20)p_cExpaindPermutation[0]+=8;
	if(b_Temp21)p_cExpaindPermutation[0]+=4;
	if(b_Temp22)p_cExpaindPermutation[0]+=2;
	if(b_Temp23)p_cExpaindPermutation[0]+=1;
    p_cExpaindPermutation[2]=si[3][p_cExpaindPermutation[0]];
    p_cCompressPermutation[1]=p_cExpaindPermutation[1]*16+p_cExpaindPermutation[2];

	p_cExpaindPermutation[0]=0;
	if(b_Temp25)p_cExpaindPermutation[0]=32;
	if(b_Temp30)p_cExpaindPermutation[0]+=16;
	if(b_Temp26)p_cExpaindPermutation[0]+=8;
	if(b_Temp27)p_cExpaindPermutation[0]+=4;
	if(b_Temp28)p_cExpaindPermutation[0]+=2;
	if(b_Temp29)p_cExpaindPermutation[0]+=1;
    p_cExpaindPermutation[1]=si[4][p_cExpaindPermutation[0]];

	p_cExpaindPermutation[0]=0;
	if(b_Temp31)p_cExpaindPermutation[0]=32;
	if(b_Temp36)p_cExpaindPermutation[0]+=16;
	if(b_Temp32)p_cExpaindPermutation[0]+=8;
	if(b_Temp33)p_cExpaindPermutation[0]+=4;
	if(b_Temp34)p_cExpaindPermutation[0]+=2;
	if(b_Temp35)p_cExpaindPermutation[0]+=1;
    p_cExpaindPermutation[2]=si[5][p_cExpaindPermutation[0]];
    p_cCompressPermutation[2]=p_cExpaindPermutation[1]*16+p_cExpaindPermutation[2];

	p_cExpaindPermutation[0]=0;
	if(b_Temp37)p_cExpaindPermutation[0]=32;
	if(b_Temp42)p_cExpaindPermutation[0]+=16;
	if(b_Temp38)p_cExpaindPermutation[0]+=8;
	if(b_Temp39)p_cExpaindPermutation[0]+=4;
	if(b_Temp40)p_cExpaindPermutation[0]+=2;
	if(b_Temp41)p_cExpaindPermutation[0]+=1;
    p_cExpaindPermutation[1]=si[6][p_cExpaindPermutation[0]];

	p_cExpaindPermutation[0]=0;
	if(b_Temp43)p_cExpaindPermutation[0]=32;
	if(b_Temp48)p_cExpaindPermutation[0]+=16;
	if(b_Temp44)p_cExpaindPermutation[0]+=8;
	if(b_Temp45)p_cExpaindPermutation[0]+=4;
	if(b_Temp46)p_cExpaindPermutation[0]+=2;
	if(b_Temp47)p_cExpaindPermutation[0]+=1;
    p_cExpaindPermutation[2]=si[7][p_cExpaindPermutation[0]];
    p_cCompressPermutation[3]=p_cExpaindPermutation[1]*16+p_cExpaindPermutation[2];
}
void  StraigthPermutation(unsigned char *p_cCompressPermutation)
{
	memcpy(p_cCharToBit,p_cCompressPermutation,4);
   	b_Bit1=b_Temp16;
	b_Bit2=b_Temp7;
	b_Bit3=b_Temp20;
	b_Bit4=b_Temp21;
	b_Bit5=b_Temp29;
	b_Bit6=b_Temp12;
	b_Bit7=b_Temp28;
	b_Bit8=b_Temp17;

	b_Bit9=b_Temp1;
	b_Bit10=b_Temp15;
	b_Bit11=b_Temp23;
	b_Bit12=b_Temp26;
	b_Bit13=b_Temp5;
	b_Bit14=b_Temp18;
	b_Bit15=b_Temp31;
	b_Bit16=b_Temp10;


	b_Bit17=b_Temp2;
	b_Bit18=b_Temp8;
	b_Bit19=b_Temp24;
	b_Bit20=b_Temp14;
	b_Bit21=b_Temp32;
	b_Bit22=b_Temp27;
	b_Bit23=b_Temp3;
	b_Bit24=b_Temp9;

	b_Bit25=b_Temp19;
	b_Bit26=b_Temp13;
	b_Bit27=b_Temp30;
	b_Bit28=b_Temp6;
	b_Bit29=b_Temp22;
	b_Bit30=b_Temp11;
	b_Bit31=b_Temp4;
	b_Bit32=b_Temp25;
    memcpy(p_cCompressPermutation,p_cBitToChar,4);
}
void FinalPermutation(unsigned char *result,unsigned char *p_cRightInitData,unsigned char *p_cLeftInitData)
{
      memcpy(p_cCharToBit,p_cRightInitData,4);
      memcpy(&p_cCharToBit[4],p_cLeftInitData,4);
     
   	b_Bit1=b_Temp40;
	b_Bit2=b_Temp8;
	b_Bit3=b_Temp48;
	b_Bit4=b_Temp16;
	b_Bit5=b_Temp56;
	b_Bit6=b_Temp24;
	b_Bit7=b_Temp64;
	b_Bit8=b_Temp32;

	b_Bit9=b_Temp39;
	b_Bit10=b_Temp7;
	b_Bit11=b_Temp47;
	b_Bit12=b_Temp15;
	b_Bit13=b_Temp55;
	b_Bit14=b_Temp23;
	b_Bit15=b_Temp63;
	b_Bit16=b_Temp31;


	b_Bit17=b_Temp38;
	b_Bit18=b_Temp6;
	b_Bit19=b_Temp46;
	b_Bit20=b_Temp14;
	b_Bit21=b_Temp54;
	b_Bit22=b_Temp22;
	b_Bit23=b_Temp62;
	b_Bit24=b_Temp30;

	b_Bit25=b_Temp37;
	b_Bit26=b_Temp5;
	b_Bit27=b_Temp45;
	b_Bit28=b_Temp13;
	b_Bit29=b_Temp53;
	b_Bit30=b_Temp21;
	b_Bit31=b_Temp61;
	b_Bit32=b_Temp29;

   	b_Bit33=b_Temp36;
	b_Bit34=b_Temp4;
	b_Bit35=b_Temp44;
	b_Bit36=b_Temp12;
	b_Bit37=b_Temp52;
	b_Bit38=b_Temp20;
	b_Bit39=b_Temp60;
	b_Bit40=b_Temp28;

	b_Bit41=b_Temp35;
	b_Bit42=b_Temp3;
	b_Bit43=b_Temp43;
	b_Bit44=b_Temp11;
	b_Bit45=b_Temp51;
	b_Bit46=b_Temp19;
	b_Bit47=b_Temp59;
	b_Bit48=b_Temp27;


	b_Bit49=b_Temp34;
	b_Bit50=b_Temp2;
	b_Bit51=b_Temp42;
	b_Bit52=b_Temp10;
	b_Bit53=b_Temp50;
	b_Bit54=b_Temp18;
	b_Bit55=b_Temp58;
	b_Bit56=b_Temp26;

	b_Bit57=b_Temp33;
	b_Bit58=b_Temp1;
	b_Bit59=b_Temp41;
	b_Bit60=b_Temp9;
	b_Bit61=b_Temp49;
	b_Bit62=b_Temp17;
	b_Bit63=b_Temp57;
	b_Bit64=b_Temp25;
    memcpy(result,p_cBitToChar,8);
}
//*******************end Des *******************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -