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

📄 zhihuan.cpp

📁 置换密码算法的原理是不改变明文字符
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


int jiamibox[6]={2,3,1,5,4,6};      //加密置换矩阵
int jiemibox[6]={3,1,2,5,4,6};         //逆置换矩阵
char in[5000];                                  //定义明文字符串变量
char out[5000];                                 //定义密文字符串变量
char ch;

void jiami();          //加密函数
void jiemi();          //解密函数

//加密函数
void jiami()
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////输入明文字符串
int i=0,l,c,a;
printf("\n输入要加密的明文:");
getchar(ch);
gets(in);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////不足5位补齐5位
a=strlen(in)/6;
for(l=strlen(in);l<=(a+1)*6;l++)
{
   in[l]=' ';
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////加密过程
for(i=0;i<5000;i++)
{
   c=i/6;
   out[jiamibox[i%6]+c*6-1]=in[i];
}                                 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////输出
printf("您所需要加密的明文为:");
for(i=0;i<5000;i++)
{
   if(in[i]!='\0')
   {
    printf("%c",in[i]);
   }
   else
   {
    break;
   }
}
printf("\n");
printf("加密后的密文为:");
for(i=0;i<5000;i++)
{
   if(in[i]!='\0')
   {
    printf("%c",out[i]);
   }
   else
   {
    break;
   }
}
printf("\n");
}
//解密函数
void jiemi()
{
int i,c;
printf("请输入要解密的密文:");
getchar(ch);
gets(in);
for(i=0;i<5000;i++)
{
   c=i/6;
   out[jiemibox[i%6]+c*6-1]=in[i];
}

printf("您所需要解密的密文为:");
for(i=0;i<5000;i++)
{
   if(in[i]!='\0')
   {
    printf("%c",in[i]);
   }
   else
   {
    break;
   }
}
printf("\n");
printf("解密后的明文为:");
for(i=0;i<5000;i++)
{
   if(in[i]!='\0')
   {
    printf("%c",out[i]);
   }
   else
   {
    break;
   }
}
printf("\n");
}
//主函数
void main()
{
int choose;
list:
printf("*******************************欢迎使用置换密码功能*****************************");
printf("请选择需要进行的操作种类:\n"); 
printf("1、加密\n");
printf("2、解密\n");
printf("3、退出\n");
scanf("%d",&choose);
if(choose==1)
{
   jiami();
   goto list;
}
else if(choose==2)
{
   jiemi();
   goto list;
}
else if(choose==3)
{
   exit(1);
}
else
{
   printf("您输入的序号不正确,请重新输入:\n");
   goto list;
} 

}

⌨️ 快捷键说明

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