欢迎来到天天文库
浏览记录
ID:53003235
大小:96.44 KB
页数:8页
时间:2020-04-10
《凯撒密码 C语言实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。/**凯撒密码实现要求,将明文字母变成它后面第三个字母,后面的循环到前面!公式为f(a)=(f(a)+3)%26*/#includeintmain(
2、){charP[100];/*定义明文长度*/charC[100];/*定义密文长度*/intK=3,i;printf("PleaseinputPlaintext:");/*输入明文*/gets(P);/*接受明文*/for(i=0;P[i]!=' ';i++){/*逐个判断字母的大小*/if(P[i]>='a'&&P[i]<='z')/*小写字母*/C[i]=(P[i]-'a'+K)%26+'a';elseif(P[i]>='A'&&P[i]<='Z')/*大写字母*/C[i]=(P[i]-'A'+K)%26+'A';elseC[i]='
3、';/*如果不是字母,转换为空格*/}printf("TheCiphertextis:%s",C);/*输出密文*/getch();return0;}1、程序结构化,用函数分别实现2、对文件的加密,解密输出到文件#include#includevoidmenu()/*菜单,1.加密2.解密3.退出*/{clrscr();printf("===============================================================================");p
4、rintf("1.Encryptthefile");printf("2.Decryptthefile");printf("3.Quit");printf("===============================================================================");printf("Pleaseselectaitem:");return;}charencrypt(charch,intn)/*加密函数,把字符向右循环移位n*/{while(ch>='A'&&ch<='Z'){r
5、eturn('A'+(ch-'A'+n)%26);}while(ch>='a'&&ch<='z'){return('a'+(ch-'a'+n)%26);}returnch;}main(){inti,n;charch0,ch1;FILE*in,*out;charinfile[10],outfile[10];textbackground(RED);textcolor(LIGHTGREEN);clrscr();menu();ch0=getch();while(ch0!='3'){if(ch0=='1'){clrscr();printf("Pleas
6、einputtheinfile:");scanf("%s",infile);/*输入需要加密的文件名*/if((in=fopen(infile,"r"))==NULL){printf("Cannotopentheinfile!");printf("Pressanykeytoexit!");getch();exit(0);}printf("Pleaseinputthekey:");scanf("%d",&n);/*输入加密密码*/printf("Pleaseinputtheoutfile:");scanf("%s",outfile);/*输
7、入加密后文件的文件名*/if((out=fopen(outfile,"w"))==NULL){printf("Cannotopentheoutfile!");printf("Pressanykeytoexit!");fclose(in);getch();exit(0);}while(!feof(in))/*加密*/{fputc(encrypt(fgetc(in),n),out);}printf("Encryptisover!");fclose(in);fclose(out);sleep(1);}if(ch0=='2'){clrsc
8、r();printf("Pleaseinputtheinfile:");scanf("%s",infile);/*输入需要解密的文件
此文档下载收益归作者所有