文件加密解密课程设计报告

文件加密解密课程设计报告

ID:14204600

大小:236.50 KB

页数:19页

时间:2018-07-26

文件加密解密课程设计报告_第1页
文件加密解密课程设计报告_第2页
文件加密解密课程设计报告_第3页
文件加密解密课程设计报告_第4页
文件加密解密课程设计报告_第5页
资源描述:

《文件加密解密课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、XXXX大学计算机科学与技术学院《汇编语言程序设计》课程设计实验报告题目:文件的加密和解密专业:计算机科学与技术班级:XXXX学号:XXXXXXXXX_姓名:_XXX_成绩:指导教师:XXXXX完成日期:2013年9月26日一、题目需求题目要求文档只给出了文件的加密解密要求,即最基本的要求为实现文件的加密解密,而且也没有限制文件的加密解密方式,也没有限制对哪些种类的文件进行加密解密(理论上应该是对任意文件都可进行),自由度可谓相当的高。既然没有限定加密解密的方式,那么我认为还是采用简单一点的加密解密方式较好,这样一来程序就变得容易编写而且也能提高效率

2、。当然在社会使用环境中的话当然是使用较难破解的复杂解密方式了。不管使用哪种加密解密方式都必须满足的基本要求是:加密前的文件和解密后的文件应当是完全一样的。这就是这次任务的基本目标。二、系统设计1、概要设计根据题目要求可知该次设计应该包含以下内容:从磁盘获取加密解密信息以及文件路径名并保存。加密解密过程中需打开文件,所以要通过系统调用打开需处理的文件。打开文件后,读取其内容,对文件进行加密操作。加密之后,写入源文件,并保存。进行解密操作时,同样先打开需处理的文件。读出文件内容,进行解密操作。解密操作完成后,写入源文件中,并关闭源文件。2、详细设计首先确

3、定加密解密所使用的算法,这里我采用的是异或加密算法。‘异或’运算为二元逻辑运算,运算规则为:参加运算的两位相同时结果为0,相异时结果为1。‘异或’运算的特点:某逻辑变量与0异或时其值不变,与1异或时其值取反。若一字符字节与全1字节(FFH)异或,各位同时变反,原字符信息不可读出,可达到加密的目的。解密也是同样的道理,只需重复上述操作,该字节将恢复原值,即可达到解密的目的。所以同一程序既可以实现加密也可实现解密。开始该程序的总流程图如下:键入待处理文件名Y文件内容读入缓冲区文件打开成功?N异或运算循环处理缓冲区中的字节提示错误文件指针移动回文件头写文件

4、关闭文件结束程序中为读入的文本设置一个缓冲区,当缓冲区大于文件长度时,文件读入功能能自动获取读入文本的长度,当缓冲区小于文件长度时,文件读入功能将给出缓冲区满错误提示信息。实现该功能部分代码如下:MOVAX,3D02HINT21HJCOPERRMOVTOP,AXMOVBX,AXMOVCX,2000LEADX,BUFMOVAH,3FHINT21HJCREARRMOVLEN,AXMOVCX,AXDECCXLEABX,BUF文件内容读入缓冲区中成功后,就开始用异或运算循环处理缓冲区中的字节,实现该功能部分代码如下:LOP:XORBYTEPTR[BX],0F

5、FHINCBXLOOPLOP待字节全部被处理完成后,将文件指针重新移动回文件头,然后开始重新写文件。文件重写完毕后关闭文件,程序结束。重写文件部分代码如下:MOVAX,4200HMOVBX,TOPMOVCX,0MOVDX,0INT21HJCMVPRRMOVBX,TOPMOVCX,LENMOVAH,40HLEADX,BUFINT21H三、软件测试使用说明:在DOS环境下执行可执行文件CRYPT.EXE然后系统会提示输入文件名(不要忘了后缀),需要进行加密解密的文件路径请保持与CRYPT.EXE所在的路径一致.下面以一个txt文件为例开始测试。解压前的t

6、xt文件内容:运行加密解密程序过程:加密后的txt文件:然后对该txt文件进行解密:解密后的文件如下:可见与原来的txt文件是一模一样的。若输入了不存在或者错误的文件名,则会出现下面的报错情况:四、特点与不足1、技术特点简洁明了是本程序的最大特点。加密和解密都是使用异或算法,其操作过程完全一样,更能够保证加密算法的正确性。对文件的加密按照每一个二进制字节逐一加密,对汉字等非ASCII码字符的编码保密性得到了很好的保证。在出现非法操作时系统也会给出错误提示。2、不足之处对于加密解密的算法的设计比较简单,不具有深度。本程序采用的是对文件的每个字节进行异或

7、运算以达到加密解密。这种方法加密解密速度快,而且其正确性也能够得到证明,但是安全性能不高,从数学角度上,很容易被破译。对于较高级的加密解密方式,虽然保密性能会比这种简单的异或运算好很多,但是由于本人学习汇编时间不长,能力有限,实在难以实现。五、实验体会六、源程序清单DATASEGMENTUSE16FNAMEDB50DB?DB50DUP(?)TOPDW?LENDW?BUFDB2000DUP(?)SUCCDB0DH,0AH,'encryptordecryptsuccessfully!',0DH,0AH,'$'OPERDB0DH,0AH,'openerro

8、r!',0DH,0AH,'$'WRIRDB0DH,0AH,'writeerror!',0DH,0AH,'$'

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。