AES加密解密的实现 联系客服

发布时间 : 星期五 文章AES加密解密的实现更新完毕开始阅读2967f033ee06eff9aef807a0

4.3 测试文件加密和解密功能

4.3.1 加密

在主界面选择4进入文件加密。

密钥长度选择和密钥确认与字符串加密步骤相同,不在描述。 随便选择一个word文档来测试,先打开看看内容:

在控制台中输入要加密的文件的路径,也可直接拖拽文件也能得到路径,但是注意有空格的路径去掉引号。

然后敲击回车,加密完成。

我们再回桌面双击,windows无法正确打开源文件,加密成功。

第 27 页 共 33 页

4.3.2 解密

在主界面选择5进入文件解密。

密钥长度选择和密钥确认与字符串加密步骤相同,不在描述。 输入文件路径步骤也相同。 点击回车,弹出提示解密完成

这时再打开源文件,发现可以正常打开了,解密成功。

第 28 页 共 33 页

经测试,在密钥长度192和256bit下也同样能够成功加解密文件,这里就不在详细描述了。

4.4 测试中发现的一些问题

这里对测试中发现的一些不完善的地方做一些简单说明。

1.主菜单中有时候会出现循环报错的情况,不论从键盘输入什么字符都被识别为错误选项…

第 29 页 共 33 页

以解决,因为读取了缓冲区的数据怎么都是错的…

在scanf后添加一条清空键盘缓冲区的函数fflush(stdin)即可清空缓冲区!解决。

2.在拖拽文件进控制台的时候有时候会丢失第一个字符,如图,丢失了c盘盘符,可能是因为调用函数前加了一个getchar();但去掉后运行到此就会直接报错无法运行…

这个问题用fflush(stdin)好像又解决了……详情还不是很清楚。

3.一些地方没有进行错误的处理,有待改进,比如读取Key的时候没有判断是不是ASCII码,文件解密后会多出一些添了0的字节但不影响读取,这些问题也待解决。

第 30 页 共 33 页

5. 结论

虽然这次密码学课程设计留下的时间比较充裕,但是做的还是比较匆忙,在中期检查之前都没有花太多时间来想这件事情,不过这后面几周时间花在这次课程设计上的时间自认为还是很多了,本来只是想完成基本功能就草草结束,但是在进行作业的过程中还是感觉到远远不够,所以还是实现了高级要求中的一部分功能,因为以前编程的经验实在很少,所以功能的实现也算一个小小的考验,而功能实现后,又发现代码搞得相当凌乱没有条理,把代码模块化也花了一些精力,模块化的过程中又出现了很多问题,总会在一些基础问题上花很多时间,比如参数传递这些小问题……这才发现一份漂亮的代码真不是那么容易就可以写出来的……

代码进展其实并不快,直到临近答辩的前两天才修改好了了一个自己较为满意的版本,而就算是这个最终代码也还是有一些不满意的地方,比如一些小bug,比如没有做高级界面,只是在控制台的基础上美化和加工,其实这些也都是时间没有处理好的结果……最后在测试代码的时候解决了一个小问题还是挺让我高兴的…

在这次课程设计的过程中,自认为还是小有收获,至少C语言是好好复习了一遍……也强化了编程的思想,更有了模块化,函数化的思想,也对编程更多了点信心。虽然这次设计看上去挺简单的,但还是花了不少精神,离很多人的代码虽然还是有一些距离,比如这个界面,但是自己做的东西还是怎么看都顺眼啊……

流水账说完了,最后还是希望自己能越来越进步,更上一层楼。

参考文献

[1] 谭浩强 C程序设计(第三版) 清华大学出版社 2005 [2] 张海藩 软件工程导论(第四版) 清华大学出版社 2003 [3] 张仕斌等 应用密码学 西安电子科技大学出版社 2009

第 31 页 共 33 页