版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、凯撒密码是一种非常占老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。/*凯撒密码实现要求,将明文字母变成它后面第三个字母,后面的循环到前面!公式为f(a)=(f(a)+3)%26*/includemtmam()charP100;/*定义明文长度*/charC100;/*定义密文长度
2、*/mtK=3、i;pnntf(”PleaseinputPlaintext);/*输入明文*/gets(P);/*接受明文*/for(i=0;Pi!=,0;i+)/*逐个判断字母的大小*/if(Pi=a&Pi=,z,)/*小写字母*/Ci=(Pi-,a,+K)%26+a,;elseif(PiXA&Pi=Z)/*大写字母*/Ci=(Pi-,A,+K)%26+,A,;elseCi=*7*如果不是字母,转换为空格*/pimtf(TlieCiphertextis:n%sn,C)*输出密文*/getchQ;return0;1、程序结构化,用函数分别实现2、对文件的加密,解密输出到文件mcludeiiic
3、ludevoidmenu()/*菜单,1加密2解密3追出*7cliscrQ;pnntf(Mn=”);printf(Miil.EnciyptthefileM);printf(Mn2.DeciyptthefileM);printf(Mn3.Quitnn);=n);printf(MPleaseselectaitem:”);return;charenciypt(n)/*加密函数,把字符向右循坏移位n*/wlule(ch=*A&ch=h&ch=N)return(la,+(ch-,a,+n)%26);returnch;main()iiitLu;charchO,chi;FILE*m.*
4、out;charmfile10,outfile10;textbackground(RED);textcolor(LIGHTGREEN);cliscrQ;menuQ;chO=getch();wliile(ch0!=3r)if(chO=T)clrscrQ;prmtf(n,jiPleaseinputthelnfile:);scanf(%s,infile);/*输入需要加密的文件名*/if(m=fopen(infile,HrH)=NULL)printf(MCannotopenthepnntf(MPressanykeytoexit!nn);getchQ;exit(O);prmtf(HPleaseinpu
5、tthekey:H);scanf(H%d,&n);/*输入加密密码*/prmtf(HPleaseinputtheoutfile:);scanf(%s”,outfile);/*输入加密后文件的文件名*/if(out=fopen(outfile,wH)=NULL)printf(MCannotopentheoutfile!nH);pnntf(MPressanykeytoexit!nn);fclose(iii);getchQ;exit(O);while(!feof(in)/*加密*/fputc(encr7pt(fgetc(in),n),out);pimtf(n,jiEnciyptisover!iiH)
6、;fclose(iii);fclose(out);sleep(l);if(ch0=2)clrscrQ;piiiitf(naiPleasemputthescanf(H%sH,mfile);/*输入需要解密的文件名*/if(m=fbpen(iiifile/,iH)=NULL)printf(MCannotopenthepnntf(MPressanykeytoexit!iiH);getch();exit(O);pnntffPleaseinputthekey:H);scaiif(%d&n);/*输入解密密码(可以为加密时候的密码)*/n=26-ii;prmtfiPleaseinputtheoutfile
7、:n);scanf(%s”,outfile);/*输入解密后文件的文件名*/if(out=fdpen(outfile,HwH)=NULL)printf(MCannotopentheoutfile!nH);pnntf(MPressanykeytoexit!iiH);fclose(iii);getchQ;exit(O);while(!feof(in)fputc(encrypt(fgetc(in),n),out);prmtf(H,jiDeciyptisover!iiH);fclose(iii);fclose(out);sleep(l);cliscrQ;piiiitf(MiiGoodBve?ir);s
8、leep;getchQ;严移位法#include#includechar*Enciypt(chai-*pwd,intkey)/*加密*7fbr(inti=0;*(pwd+i)!=,0,;i+)if(*(pwd+i)=,ar&*(pwd+i)=,A,&*(pwd+i)=,ar&*(pwd+i)=key%26)(pwd+i)=*(pwd+i)-kev%26;else*(pwd+i)=z,-(key%26-(*(pwd+i)-,a,)-l;elseif(*(pwd+i)=,A,&*(pwd+i)=kev%26)(pwd+i)=*(pwd+i)-kev%26;else*(pwd+i)=Z,-(key%
9、26-(*(pwd+i)-,A,)-1;returnpwd;char*pwd;intkey;pwd=(char*)inalloc(sizeof(char);printf(MIiiputvouipassword:H);gets(pwd);pnntffliiputakey:);scanfC%cf;&key);pnntf(MTheCiphertextis:”);pnntf(M%siiH,Enci-ypt(pwd,key);严替换法:*/#include#include#includevoidtable(cliar*keyword)/*筛选密钥(去重复去空格)*/intijXfbr(i=0;*(kev
10、word+i)!=,0,;i-H-)for(j=i;*(kevword+j)!=r0,;j+)廿(i!=j)if(*(keyvoid+i)=*(keyvord+j)|*(keyvord+j)=,)for(k=j;*(k亡ywoid+k)!=*0:k+)*(keyvvoid-rk)=*(keyword+k+1);J;voidnewTab(char*keyword)/*生成密钥表*/charch;mti;mtt;for(t=0;*(kevvord+t)!=,0,;t+);fbr(ch=,a,;ch=,z,;ch+)for(i=0:*(keyxvoid+i)!=ch;i+)if(*(keyword+
11、i)=,0,)*(keyword+t)=ch;t+;break;*(keyword+t)=0,;char*Ciphertext(cliar*keyword,charPlaintext)/*按密码表加密*7charch;mtij;fbr(i=O;*(Plamtext+i)!=0;i+)for(ch-aj=0;ch-zr;ch+,j+)if(*(Plaintext+i)=ch)*(Plaintext+i)=*(keywroid4j);break;returnPlaintext;char*Deciypt(chai-*keyword,char*Plaiiitext)/*解密*/charch;mti,j
12、;fbr(i=O;*(Plamtext+i)!=,O,;i-H-)for(ch-aj=0;*(keyxvord+j)!=,0,;ch+,j+)if(*(Plaintext+i)=*(kevword+j)*(Plaintext+i)=ch;break;retuinPlaintext;voidmain()char*keyword、Plaintext.*tmp=NULL;keword=(char*)malloc(sizeof(char);Plaiiitext=(char*)inalloc(sizeof(char);piintf(Iiiputkeyword:);/*输入欲用密钥*/g亡ts(keywoid);piintf(I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 壁画活动课程设计
- 《坐标法求解立体几何中的动点问题》教学设计-2024-2025学年高二上学期数学人教A版(2019)选择性必修第一册
- 三年级语文上第一次月考试卷分析
- (大单元整体教学)2.3两位数减两位数(不退位)教学设计 人教版 二年级上册数学
- 浙教版(2023)六上 第13课 在线生活中的算法 教案5
- 中图版七年级下册信息技术 2.2策划影片视频 教学设计
- 人美版一年级美术下册《8.撕纸真有趣》教学设计
- 期末模拟练习(试题)-2023-2024学年人教版六年级下册数学
- 水果冷链物流协议模板
- 旅游景点物资承运协议
- 上海市中小学校长职级评定方案(常用版)
- 老年人综合能力评估实操 日常生活活动能力评估
- 2023年考研考博-考博英语-湘潭大学考试历年真题摘选含答案解析
- 义务教育语文课程标准(2022)测试题带答案(20套)
- 金融银行业推进老年化服务演讲稿PPT演示模板
- U9和NC差异 U9和NC差异
- 《中华民族大团结》(初中) 第1课 爱我中华 教案
- Unit+2+Universal+language+Reading+课件【知识精讲+备课精研】高中英语牛津译林版(2020)选择性必修第一册
- 箱涵伸缩缝做法
- 《自然灾害学》-课程教学大纲
- 小学生大队委竞选笔试题库
评论
0/150
提交评论