加密解密代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fflush(stdin);
gets(show);
shlg=strlen(show);
return shlg;
}
int CreatShade(char shade[])//创建密文
{
int i,sdlg;
for(i=0;i<50;i++)
{
shade[i]='\0';
}
printf("\n请输入密文!\n");
Shade[i]-=32;
}
if(Show[i]-17<'a')
{
Show[i]+=9;
}
else
{
Show[i]-=17;
}
}
else
{
printf("本系统不支持空格!请重新输入!\n");
return;
}
}
Show[i]='\0';
printf("\n密文是:%s",Shade);
printf("\n转换后是:%s\n",Show);
{
int i,shlg,klg,j,k;
char Show[50],Shade[50],Key[26];
int cnt=26;
char temp[26];
klg=CreatKey(Key);
shlg=CreatShow(Show);
printf("%c",Show[0]);
for(i=1;i<klg;i++)
printf("......... B.解密.........\n");
printf("......... Q.退出.........\n");
printf(".........加密还是解密?.........\n");
fflush(stdin);
scanf("%c",&ch);
switch(ch)
char Show[50],Shade[50];
sdlg=CreatShade(Shade);
for(i=0;i<sdlg;i++)
{
if(Check(Shade[i]))
{
if(Shade[i]>='A'&&Shade[i]<='Z')
{
Show[i]=Shade[i]+32;
}
else
{
Show[i]=Shade[i];
}
void DecodeSingleForm()//单表置换密码解密
{
int i,sdlg,klg,j,k;
char Show[50],Shade[50],Key[26];
int cnt=26;
char temp[26];
klg=CreatKey(Key);
sdlg=CreatShade(Shade);
}
}
for(i=65,j=0;i<91;i++)
{
temp[j]=i;
j++;
}
for(i=0;i<cnt;i++)//cnt是
{
for(j=0;j<klg;j++)
{
if(temp[i]==Key[j])
{
for(k=i+1;k<cnt;k++)
{
temp[k-1]=temp[k];
}
j=klg;
fflush(stdin);
scanf("%c",&ch);
switch(ch)
{
case 'A':
case 'a':
EncodeInverted();
break;
case 'B':
case 'b':
DecodeInverted();
break;
default:
break;
}
}
void EncodeSingleForm()//单表置换密码加密
{
Show[i]=Shade[i];
Shade[i]-=32;
}
else
{
Show[i]=Shade[i]+32;
}
j=CharAt(Key,Shade[i]);
Show[i]=j+96;
}
else
{
printf("本系统不支持空格!请重新输入!\n");
break;
}
}
Show[i]='\0';
printf("\n密文是:%s",Shade);
{
Shade[i]=Show[i];
Show[i]+=32;
}
j=Shade[i]-65;
Shade[i]=Key[j];
}
else
{
printf("本系统不支持空格!请重新输入!\n");
return;
}
}
Shade[i]='\0';
printf("\n明文是:%s",Show);
printf("\n转换后是:%s\n",Shade);
#include<stdio.h>
#include<string.h>
#include<math.h>
#define L 50
#define l 26
int CharAt(char str[],char ch)//此方法是用来寻找字符在字符串中的位置
{
int i;//,lg;
//lg=strlen(str);
{
if(Check(Show[i]))
{
if(Show[i]>='a'&&Show[i]<='z')
{
Shade[i]=Show[i]-32;
}
else
{
Shade[i]=Show[i];
Show[i]+=32;
}
if(Shade[i]+17>'Z')
{
Shade[i]-=9;
}
else
{
Shade[i]+=17;
{
case 'A':
case 'a':
EncodeCasser();
break;
case 'B':
case 'b':
DncodeCasser();
break;
default:
break;
}
}
void EncodeInverted()//字母倒排算法加密
{
int i,shlg;
char Show[50],Shade[50];
}
void Casser()//凯撒算法
{
char ch;
printf(".........凯撒密码算法.........\n");
printf("......... .........\n");
printf(".........加密解密系统.........\n");
printf("......... A.加密.........\n");
scanf("%c",&ch);
switch(ch)
{
case 'A':
case 'a':
printf("......... A.加密.........\n");
printf("......... B.解密.........\n");
printf("......... Q.退出.........\n");
printf(".........加密还是解密?.........\n");
fflush(stdin);
printf("%c",Shade[0]);
for(i=1;i<klg;i++)
{
if(Check(Key[i]))
{
for(j=0;j<i;j++)
{
if(Key[j]==Key[i])
{
for(k=i+1;k<klg;k++)
{
Key[k-1]=Key[k];
}
klg--;
i--;
j=i;
}
}
}
{
temp[k-1]=temp[k];
}
j=klg;
cnt--;
i--;
}
}
}
for(i=klg,j=0;i<26;i++,j++)
{
Key[i]=temp[j];
}
for(i=0;i<sdlg;i++)
{
if(Check(Shade[i]))
{
if(Shade[i]>Байду номын сангаас'a'&&Shade[i]<='z')
{
if(Check(Key[i]))
{
for(j=0;j<i;j++)
{
if(Key[j]==Key[i])
{
for(k=i+1;k<klg;k++)
{
Key[k-1]=Key[k];
}
klg--;
i--;
j=i;
}
}
}
else
{
printf("本系统不支持空格!请重新输入!\n");
return;
}
}
else
{
printf("本系统不支持空格!请重新输入!\n");
return;
}
}
Shade[i]='\0';
printf("\n明文是:%s",Show);
printf("\n转换后是:%s\n",Shade);
}
void DncodeCasser()//凯撒解密算法
{
int i,sdlg;
}
}
Show[i]='\0';
printf("\n密文是:%s",Shade);
printf("\n转换后是:%s\n",Show);
}
void Inverted()//字母倒排算法
{
char ch;
printf(".........字母倒排算法.........\n");
printf("......... .........\n");
printf(".........加密解密系统.........\n");
printf("......... A.加密.........\n");
printf("......... B.解密.........\n");
printf("......... Q.退出.........\n");
printf(".........加密还是解密?.........\n");
else
{
printf("本系统不支持空格!请重新输入!\n");
break;
}
}
for(i=65,j=0;i<91;i++)
{
temp[j]=i;
j++;
}
for(i=0;i<cnt;i++)//cnt是
{
for(j=0;j<klg;j++)
{
if(temp[i]==Key[j])
{
for(k=i+1;k<cnt;k++)
fflush(stdin);
gets(shade);
sdlg=strlen(shade);
return sdlg;
}
int CreatKey(char key[])//创建密钥
{
int i,klg;
for(i=0;i<26;i++)
{
key[i]='\0';
}
printf("\n请输入密钥!\n");
for(i=0;i<26;i++)
{
if(str[i]==ch)
{
return i+1;
}
}
return -1;
}
int CreatShow(char show[])//创建明文
{
int i,shlg;
for(i=0;i<50;i++)
{
show[i]='\0';
}
printf("\n请输入明文!\n");
shlg=CreatShow(Show);
for(i=0;i<shlg;i++)
{
if(Check(Show[i]))
{
if(Show[i]>='A'&&Show[i]<='Z')
{
Show[i]+=32;
}
else
{
}
Shade[i]=187-Show[i];
}
else
{
printf("本系统不支持空格!请重新输入!\n");
fflush(stdin);
gets(key);
for(i=0;key[i]!='\0';i++)
{
klg=i+1;
}
return klg;
}
int Check(char Data)
{
if((Data<'A'||Data>'Z')&&(Data<'a'||Data>'z'))
{
printf("输入不正确!\n");
printf("\n转换后是:%s\n",Show);
}
void SingleForm()//单表置换密码
{
char ch;
printf(".........单表置换算法.........\n");
printf("......... .........\n");
printf(".........加密解密系统.........\n");
return 0;
相关文档
最新文档