1、简单文件的加密解密目 录摘要 1Abstract 11 绪论 11.1 研究背景 11.2 主要工作 11.3 本文结构 12 相关知识 12.1 文件的加密解密 13 设计 23.1 设计思路 23.2 设计流程图 23.3 设计重点 33.4 界面设计 34 实现 34.1 功能模块 35 测试与优化 45.1 测试 45.2 优化 46 结果展示 56.1 加密操作 56.2 解密操作 67 结束语 8参考文献 9附录 10致 谢 14文件的加密解密摘要:随着社会的进步,人们的安全意识不断提高,文件的加密保护就显得非常重要,在现实生活中有许多的加密方式,这次加密我们选择对称加密解密,通过
2、读取文件的内容然后进行移位操作进行加密,解密则刚好相反,向相反的方向移动位置,进行解密。 Abstract:With the improving of social,peoples safety consciousness enhances unceasingly. Its important for the safe of secrets to learn how to encrypt.If abtaining this skill,we can get rid of the puzzle of cautions,and our secrets are more safe.Encryptin
3、g not only guarantee our property safety,but also promote the improving of science and technology.关键字:文件;加密;解密1 绪论1.1 研究背景随着社会的发展,人们把隐私保护和安全的设置看得越来越重要,其中文件的加密、解密就是一种最简单而有效的保护方式,它在我们的日常生活中扮演着重要的角色,这次我们小组将编写软件对文件进行简单的加密解密。 1.2 主要工作我们小组首先进行分工,分别负责书写代码和文档,还有负责查找资料和调试程序,各位成员之间共同合作,然后商量加密的方法,书写代码,测试组对程序进行
4、测试,编写文档的小组同时开展工作,努力的完成这次学年设计。1.3 本文结构本文第一部分主要以绪论为主,说明了文章的研究背景、主要工作和实现方法。第二部分主要是文件加密解密的相关知识的介绍。第三部分叙述了设计的思路、重点以及设计优化。第四部分介绍的是功能模块的实现,对于文件加密解密来说,主要分加密功能和解密功能。第五部分就是对程序的测试和优化,这是非常重要的环节,关系到程序的严谨度,可以使程序更加的完善。第六部分为结果展示,将我们的劳动成果通过操作展现给大家看。第七部分结束语简洁明了,附录我们的程序代码,最后致谢词结束。2 相关知识2.1 文件的加密解密现在主要有两种加密方式,一种是对称加密另一
5、种是非对称加密;对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA);不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙公钥和私钥,使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA,3 设计3.1 设计思路加密的时候:运用C语言知识,将所遇到的字符进行移位操作。解密的时
6、候:根据加密的方法,反过来解密,即将加密字符进行移位操作。学会运用文件,对任意文件进行加密解密操作,先打开文件判断文件是否为空,为空则给出提示,不为空就对文件进行加密解密操作,还要将文件显示出来,最后关闭文件。3.2 设计流程图图3-1 文件的加密解密流程图3.3 设计重点对于我们需要用到的文件,每次都需要打开和关闭。首先要创建一个文件夹,打开时会判断文件夹是否为空。在写加密函数的时候,主要会用到下面的操作: do ch=fgetc(fp); ai=ch; ai=ai+1; i=i+1; while(!feof(fp);在写解密函数的时候,主要会用到下面的操作:do ch=fgetc(fp);
7、 ai=ch; ai=ai-1; i=i+1; while(!feof(fp);3.4 界面设计为了让我们的设计更加的完美,一些提示语句是必不可少的,菜单必须有足够的吸引力,这样会让使用者感觉更加的方便。例如:*简单文件加解密程序*1 表示需要加密2 表示解密请输入你所要选择的方式:通过这个界面,可以提示使用者,该如何使用我们的程序,这样就增加了代码的易用性。4 实现4.1 功能模块 加密 void jiami(FILE *fp)首先打开一个文件读出文件中的内容,存入数组中,然后进行移位操作,对其进行加密,再装入另一个文件中,则加密操作完成,其中我们用到了feof函数对文件是否结束进行判断1,
8、在运用getc和putc函数对文件进行输出和输入。 解密 void jiemi(FILE *fp)打开一个需要解密的文件,然后用feof函数判断文件是否结束,再用getc函数从中得出文件中的内容1,进行字符的移位操作进行解密,再用putc函数把字符输入到新建的文件中,则解密成功。5 测试与优化5.1 测试 可执行性:程序在刚写好的时候,里面未免会有一系列的错误,包括逻辑错误、语句错误及粗心引起的标点的错误等。在测试中,通过多次的测试来找出其中的错误所在,并修改。 可用性:本次设计的主要目标是实现文件的简单加解密,所以它的最后的可用应是源文件与最后文件之间有了一定的加密程序,使别人见了而不理解。
9、在本块中,要通过运行程序寻找原文与目标文件之间的关系是否与设计的相同,如果不同,通过调试、修改达到最后的目标。 人机界面:程序是面向使用者的,在人机界面中一定要保证其友好,所以在这一块,要通过多次的调试来完善人机界面的友好5.2 优化操作界面是程序优良的另一个体现,它要便于操作人员观看和操作。在程序书写的初期,主要是顾及到程序的可应用性,而没有考虑到界面的优化。在设计初期,显示界面的代码为:printf(n1 表示需要加密,2 表示解密);printf(请输入你所要选择的方式 );scanf(%d,&s); printf(请输入需要加密或解密文件的地址 );scanf(%s,d);运行时的效果
10、如图5- 1所示。经过一定的修改,最后的界面代码为:printf(ntt*);printf(nntttt简单文件加解密程序n);printf(ntt*);printf(nnntt1 表示需要加密nntt2 表示解密);printf(nnntt请输入你所要选择的方式 );scanf(%d,&s); prntf(nnntt请输入需要加密文件的地址 );scanf(%s,d);运行时的效果如图5-2所示。在界面优化的过程中,要考虑到界面的排版。在哪显示什么样的提示、提示显示的格式是什么样的等等。在该过程中,我知道心细与耐心的重要性,因为在界面的修改过程中,要考虑到各种可能的结果,而且调试的过程中不可
11、能一次性搞好的,要经过多次的修改与调试,从而达到最后的结果。图5-1 早期界面图5-2 修改后的界面6 结果展示6.1 加密操作 在执行加密前,要确定文件位置,例如: 图6-1 确认文件存在 图6-2 查看文档内容图6-3加密操作 加密完成后,在原文件旁会自动生成一个文档,这个文档是在原文档名称后面加后缀1并保存,里面保存着加密后的字符,这些字符可能是一些我们认识的字符,也有可能是乱码。图6-4 自动生成加密文档图6-5 加密字符6.2 解密操作 执行解密和加密略有区别,它针对的对象是加密文档。例如:图6-6 解密操作 解密完成后,在原文件旁会自动生成一个文档,这个文档是在加密文档名称后面加后
12、缀1保存,里面保存着解密后的字符,这些字符与原文档字符相同。图6-7 自动生成解密文档图6-8 解密字符 可以看出原文档中字符与解密文档中的字符是完全相同的,给其他类型的文件加密解密方法一样,这里只以文本文档为例,因为它方便展示出来。 7 结束语本文主要是对文件进行加密解密,通过分析选择加密方法,针对文件中的字符,利用它们对应的ASCC码值进行加密解密,方法比较简单,在整个设计过程中,体现出了我们团队的力量。为了让我们的设计更加的完善,还需要不断的调试,发现错误并且改正错误。还要感谢指导老师对我们帮助,使我们更好的完成这次学年设计。参考文献1 何钦铭,颜晖.C语言程序设计M.北京:高等教育出版
13、社,2008:238248附录/# include# include# include static char a30000;static char d40;static int s;static int t;/void panding( ) int i=0,x,y,z; while(di!=0) x=i; i+; y=x-1; z=x-2; if(dx=t&dy=x&dz=t) t= 0; else t= 1;/void caozuo() int i=0; int y; while(di!=0) if(di=.) y=i; i=i+1; i=i-1; while(i=y) di+1=di;
14、i-; dy=1; /对加密或解密后的文件进行存储位置的处理/void jiami(FILE *fp) FILE *f2; char ch; int i=0,g=0; if(t=0) if(f2=fopen(d,w)=NULL) printf(nntt打开失败!n); exit (0); if(t=1) if(f2=fopen(d,wb)=NULL) printf(nntt打开失败!n); exit (0); do ch=fgetc(fp); ai=ch; ai=ai+1; i=i+1; while(!feof(fp); i=i-2; while(g=i) fputc(ag,f2); g+;
15、printf(nntt加密成功!n); printf(nntt加密后的文件位置:%s,d); printf(n); fclose(f2);/void jiemi(FILE *fp) FILE *f2; char ch; int i=0,g=0; if(t=0) if(f2=fopen(d,w)=NULL) printf(nntt打开失败!n); exit (0); if(t=1) if(f2=fopen(d,wb)=NULL) printf(nntt打开失败!n); exit (0); do ch=fgetc(fp); ai=ch; ai=ai-1; i=i+1; while(!feof(fp
16、); i=i-2; while(g=i) fputc(ag,f2); g+; printf(nntt解密成功!n); printf(nntt解密后的文件位置:%s,d); printf(n); fclose(f2);/void main ( ) FILE *fp; int i=0; printf(ntt*); printf(nntttt简单文件加解密程序n); printf(ntt*); printf(nnntt1 表示需要加密nntt2 表示解密); printf(nnntt请输入你所要选择的方式: ); scanf(%d,&s); printf(nntt请输入需要加密或解密文件的地址: )
17、; scanf(%s,d); panding(); if(t=1) if(fp=fopen(d,rb)=NULL) printf(nntt打开失败!n); exit (0); if(t=0) if(fp=fopen(d,r)=NULL) printf(nntt打开失败!n); exit (0); caozuo(); if(s=1) jiami(fp); else jiemi(fp); fclose(fp); 致 谢经过数天的努力,不断地查阅资料和反复的修改设计,终于做出完整的结果。在此忙碌的过程中,首先要感谢指导老师的提点与教导,同时,感谢小组队长以及成员给予很大的协助,本次设计得以圆满成功。评语: 评阅教师签名: 年 月 日成 绩
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1