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

📄 metathesis.h

📁 DES 加密解密代码实例
💻 H
字号:
void metathesis_encryption(char m[],char k[],int length)	//置换加密算法
{
	int i,j,t;
	int sort[8],temp[8];
	char temp_char[8];
	if ((length%8)!=0)				//补位使明文字符数为8的倍数
	{
		for(i=0;i!=8-(length%8);i++)
		{
			m[length+i]=char(97+i);
		}
		m[length+i]='\0';
	}
	else
		m[length]='\0';
	for(j=0;j<8;j++)
	{
		if(int(k[j])>=97)
			sort[j]=int(k[j])-96;
		else
			sort[j]=int(k[j])-64;
	}
	for(i=0;i<8;i++)         
	{
		temp[i]=0;
		for(j=0;j<8;j++)
		{
			if(sort[i]>sort[j])		
			{
				temp[i]+=1;
			}
		}
	}
	for(t=0;m[t+1]!='\0';t+=8)			//以8为模分段
	{
		for(i=0;i<8;i++)
			temp_char[i]=m[t+i];
		for(i=0;i<8;i++)
		{
			m[t+i]=temp_char[temp[i]];
		}
	}
}


void metathesis_decryption(char m[],char k[],int length)		//置换解密算法
{
	int i,j,t;
	int sort[8],temp[8];
	char temp_char[8];
	for(j=0;j<8;j++)
	{
		if(int(k[j])>=97)
			sort[j]=int(k[j])-96;
		else
			sort[j]=int(k[j])-64;
	}
	for(i=0;i<8;i++)         
	{
		temp[i]=0;
		for(j=0;j<8;j++)
		{
			if(sort[i]>sort[j])		
			{
				temp[i]+=1;
			}
		}
	}
	for(t=0;m[t+1]!='\0';t+=8)			//以8为模分段
	{
		for(i=0;i<8;i++)
			temp_char[i]=m[t+i];
		for(i=0;i<8;i++)
		{
			m[t+temp[i]]=temp_char[i];
		}
	}
	m[length]='\0';
}

⌨️ 快捷键说明

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