【文件属性】:
文件名称:凯撒密码算法实验
文件大小:59KB
文件格式:DOC
更新时间:2014-11-13 11:53:54
凯撒密码算法实验
按照a~z依次对应0~25编码,变量K存放密钥-正整数。变量M存放一明文字符ASCII码,变量C存放M中的数据经加密后得到的一密文字符的ASCII码。
加密算法:C≡(M+K)mod 26,如此继续下去,实现逐个字符进行加密。
编辑录入
#include
#include
#include
void main()
{
char str1[100],str2[100];
int i,k,n;
printf("\t\t\t 欢迎使用凯撒加密系统");
printf("\n\n\t\t\t1.加密 2.解密 0.退出\n");
do{
printf("请选择:");
scanf("%d",&n);
switch(n)
{
case 1:
{
printf("\n输入密钥:");
scanf("%d",&k);
printf("\n输入明文字符串:");
scanf("%s",str1);
strupr(str1);
for(i=0;str1[i]!='\0';i++)
{
if(str1[i]>(90-k))str2[i]=str1[i]-26+k;
else str2[i]=str1[i]+k;
}
str2[i]='\0';
printf("\n加密后的密文为%s\n",str2);
break;
}
case 2:
{
printf("\n输入密钥:");
scanf("%d",&k);
printf("\n输入密文字符串:");
scanf("%s",str1);
strupr(str1);
for(i=0;str1[i]!='\0';i++)
{
if(str1[i]<65+k)str2[i]=str1[i]+26-k;
else str2[i]=str1[i]-k;
}
str2[i]='\0';
printf("\n明文为%s\n",str2);
break;
}
case 0:
exit(0);
default:printf("\n请重新输入:\n");
}
}while(n);
}