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

📄 新建 文本文档.txt

📁 关于列置换的加密技术的密码实现
💻 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 + -