- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.. ..
程序设计及应用课程设计
2015~ 2016学年第三学期
院(系) 信息工程与自动化学院
专 业 自动化
学 号 201510401308
班 级 自动化153
学生姓名 张超
设计时间 2016年9月5日
指导教师 线岩团
1.设计题目:
题目7:文件加密
文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。加密算法,密钥设计由同学自己选择现有的加密解密算法或是自己设计。
要求:
(1)对文件的字符根据加密算法,实现文件加密。
(2)对操作给出必要的提示。
(3) 对存在的file1.txt文件,必须先打开,后读写,最后关闭。加密后的文件放在file2.txt。
(4)解密文件保存在file3.txt中。
2.设计目的:
文件的传输会有明文和密文的区别,明文发送是不安全的,易遭到黑客拦截。现要求编写一个程序实现文本文件的加密和解密操作。
3. 要求:
(1)用户可选择是“加密文件”还是“解密文件”操作;
(2)加密文件:用户输入明文文件名(待加密文件,该文件必须在磁盘存在)和密文文件名(加密后目标文件),系统能够打开明文源文件,每次读取源文件单个字节(直至读到文件结束),并与用户输入的密钥通过异或运算进行加密,加密后存入目标文件中;
(3)解密文件:用户输入密文文件名(待解密文件,该文件必须在磁盘存在)和明文文件名(解密后目标文件),系统能够打开密文源文件,每次读取源文件单个字节(直至读到文件结束),并与用户输入的密钥通过异或运算进行解密,解密后存入目标文件中。
一、 设计思路和分析过程
/*采用结构化程序设计思想,把系统的功能划分为哪几个模块,为实现每个功能模块设计了哪些函数及函数的作用说明*/
程序分为三个模块:主函数菜单模块、“加密文件”模块、“解密文件”模块。
“加密文件”模块对应void fun1()、“解密文件”模块对应fun2()。
Fun1()实现“加密文件”,根据要加密文件内容与key异或得到加密文件,并保存的第二个程序中去形成新的加密文件。
fun2()计算“解密文件”,根据要解密文件内容与key异或得到解密文件,并保存的第二个程序中去形成新的解密后的文件。
二、程序流程图
三、程序代码
#includestdio.h
void fun1()
{
FILE *fp1,*fp2;
char key,ch;
char filename1[50],filename2[50];
printf( Please input orginal filenamen:);
menu21: gets(filename1);
if((fp1=fopen(filename1,rt))==NULL)
{
printf(%s open Error!,filename1);goto menu21;
}
printf( Please input target filenamen:);
menu22: gets(filename2);
if((fp2=fopen(filename2,wt+))==NULL)
{
printf(%s open Error!,filename2);goto menu22;
}
printf( Please input key:);
getche(key);
printf(\n);
while((ch=fgetc(fp1))!=EOF)
{
ch=ch^key;
fputc(ch,fp2);
}
fclose(fp1);
fclose(fp2);
printf(Decryption success!\n);
}
void fun2()
{
FILE *fp1,*fp2;
char key,ch;
char filename1[50],filename2[50];
printf( Please input orginal filenamen:);
menu21: gets(filename1);
if((fp1=fopen(filename1,rt))==NULL)
{
printf(%s open Error!,filename1);goto menu21;
}
printf( Please input target filenamen:);
menu22: gets(filename2);
if((fp2=fopen(filename2,wt+))==NUL
文档评论(0)