📄 metathesis.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 + -