凯撒密码算法实验

时间:2014-11-13 11:53:54
【文件属性】:

文件名称:凯撒密码算法实验

文件大小: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); }


网友评论

  • 基本实现了凯撒密码算法的原理,代码写的比较简洁,不错啊!