📄 新建 文本文档.txt
字号:
#include <stdio.h>
#include <string.h>
//加密开始
void main()
{
char plaintext[600];
char ciphertext[600];
char keyword[200];
char copykeyword[200];
int sortkey[200];
char a;
int i,m,n,j;
for(i=0;i<600;i++) // 初始化数组
{
plaintext[i]=0;
ciphertext[i]=0;
}
for(i=0;i<200;i++)
{
keyword[i]=0;
sortkey[i]=0;
}
printf("请输入keyword:\n");
scanf("%s",keyword);
printf("请输入plaintext:\n");
scanf("%s",plaintext);
m=strlen(keyword);
n=strlen(plaintext);
for(i=0;i<200;i++)
{
copykeyword[i]=keyword[i];
}
for(i=0;i<m;i++)//对keyword排序
{
for (j=0;j<m-1;j++)
if(keyword[j]>keyword[j+1])
{
a=keyword[j];
keyword[j]=keyword[j+1];
keyword[j+1]=a;
}
}
/*for(i=0;i<m;i++)
{
printf("%c",keyword[i]);
} */
for(i=0;i<m;i++) //得到序列
{
for(j=0;j<m;j++)
{
if(keyword[i]==copykeyword[j])
sortkey[j]=i;
}
}
for(i=0;i<m;i++)
{
printf(" %d ",sortkey[i]);
}
/*printf("明文矩阵为:\n");
for(i=0;i<n;i++)
{
if(i%m==0)
{printf("\n");}//printf("%c",plaintext[i]);}
printf("%c",plaintext[i]);
}*/
printf("\n");
printf("密文为:\n");
for(i=0;i<m;i++)
{
for(j=0;j<=(n/m);j++)
printf("%c",plaintext[sortkey[i]+j*m]);
}
printf("\n");
} //加密完成
//解密开始
//------------------------------------------------------------------------------------------------
/*void main()
{
char plaintext[600];
char ciphertext[600];
char keyword[200];
char copykeyword[200];
char b[100][100];
int sortkey[200];
char a;
int i,m,n,j;
for(i=0;i<600;i++) // 初始化数组
{
plaintext[i]=0;
ciphertext[i]=0;
}
for(i=0;i<200;i++)
{
keyword[i]=0;
sortkey[i]=0;
}
for(i=0;i<100;i++)
{
for(j=0;j<100;j++)
b[i][j]=0;
}
printf("请输入密文:\n");
scanf("%s",ciphertext);
printf("请输入密钥:\n");
scanf("%s",keyword);
m=strlen(keyword);
n=strlen(ciphertext);
for(i=0;i<200;i++)
{
copykeyword[i]=keyword[i];
}
for(i=0;i<m;i++)//对keyword排序
{
for (j=0;j<m-1;j++)
if(keyword[j]>keyword[j+1])
{
a=keyword[j];
keyword[j]=keyword[j+1];
keyword[j+1]=a;
}
}
/*for(i=0;i<m;i++)
{
printf("%c",keyword[i]);
}*/
/*for(i=0;i<m;i++) //得到序列
{
for(j=0;j<m;j++)
{
if(keyword[i]==copykeyword[j])
sortkey[j]=i;
}
}
for(i=0;i<m;i++)
{
printf(" %d ",sortkey[i]);
}
printf("\n");
//char b[m][n/m];
for(i=0;i<m;i++)
{
for(j=0;j<n/m;j++)
{
b[sortkey[i]][j]=ciphertext[i*(n/m)+j];
}
}
printf("明文为:\n");
for(i=0;i<n/m;i++)
{
for(j=0;j<m;j++)
printf("%c",b[j][i]);
}
printf("\n");
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -