您的当前位置:首页正文

文本文档的加密与解密课程设计说明书

来源:个人技术集锦


*******************

实践教学

*******************

兰州理工大学

计算机与通信学院

2014年春季学期

工程开发综合训练 课程设计

题 目: 文本文档的加密与解密 专业班级: 计算机科学与技术11级4班 姓 名: 张有刚 学 号: 指导教师: 刘树群 成 绩:

目 录

摘 要 .......................................... 错误!未定义书签。 1. 问题描述 ................................... 错误!未定义书签。 2. 系统设计 ................................... 错误!未定义书签。 3. 系统实现 ................................... 错误!未定义书签。 4. 系统测试 ................................... 错误!未定义书签。 5. 总结 ....................................... 错误!未定义书签。 参考文献 ........................................ 错误!未定义书签。

摘 要

随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密算法有多种,常见的有RSA、DES、MD5等。但是这些算法虽然原理简单,但具体实现起来却非常繁琐复杂,故而本程序设计对文件的加密使用的是最基础的异或加密算法。

Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。Java是一门很优秀的编程语言,是目前软件设计中极为健壮的编程语言。Java不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发。Java确实具备了“一次写成,处处运行”的特点,所以,Java已经成为网络时代最重要的编程语言之一。本程序充分利用Java语言的特点,针对当下社会比较重视的文件加密,设计了本程序。

使用本程序可以对txt,word等多种文件进行加密解密,使用便捷实用,功能完善,

满足了用户对文件安全性的需求。

关键词 : JAVA ,加密,解密

1. 问题描述

本设计要求学生开发一个在Windows操作系统下,利用DES加密算法,开发出一款能够对文本信息进行加密与解密的软件。通过对文本信息特点的分析,设计出相应的DES加密算法,同时,根据DES加密过程设计出解密算法,画出相应的流程图,实现对文本文件的加密和解密,写出软件说明书,并提出日后的升级维护意见。

此外,学生通过该题目的设计过程,可以初步应用软件系统的开发原理和开发方法,全面培养软件开发过程中的分析、设计、编码、测试及文档规范书写的能力,得到软件工程的训练,提高解决实际问题的能力。

(1)用图形用户界面实现软件界面,整体布局合理,美观大方。 (2)用56位秘钥对文本进行加解密。

(3)能够对一般的文本文件包括扩展名为doc和txt的文件进行直接加解密。 (4)能够实现对中英文文本的加解密。

(5)系统的开发可以采用Java或C++等编程语言来实现;

(6) 在基本要求达到后,可进行创新设计,如改善算法性能、友好的人机界

面。

2. 系统设计

程序流程图

该程序的模块调用十分简单明了,所以主程序的运行也很清晰,以下就是主程序的详细流程图,如图4-1所示

开始 弹出文件加密器对话框 点击“文件”菜单下的“打开”,获得文件 点击“文件”菜单下的“打开”,获得加密后的文件 对显示在浏览窗口的“文件”加密 对显示在浏览窗口的“文件”解密 生成加密文件 生成解密文件 点击“保存”,选择路径,生成新文件,并以“.txt”命名 结束

图4-1流程图

各程序模块定义和层次关系 模块定义

主函数模块:

生成加密器框体;获取数据的输入;调用加密或解密函数。

加密模块:

判断密钥是否合法和文件是否已加密,启动加密操作,显示操作结果,并在与源文件同一文件夹下生成密文。

加密操作模块:

用DES方法加密输入的字节并返回。

解密模块:

判断密钥是否合法,启动解密操作,显示操作结果,并在指定的文件路径下生成明文。

解密操作模块:

用DES方法解密输入的字节并返回。

转换模块:

转换模块一:输入密码的字符形式,返回字节数组形式。 转换模块二:计算一个16进制字符的10进制值。 文件选择模块:

选择需要加密或解密的文件。 密码生成模块:

随机生成或用获得的密钥,用DES算法对密钥进行操作。

3. 系统实现

图形用户界面模块

在图形用户界面,设置两个面板,并分别设置显示其组件的布局。设置两个菜单项,分别为“打开”和“保存”;设置两个按钮,分别为“加密”和“解密”;创建一个文本区,用一个标签注明“文件浏览窗口”,这就是整个图形用户界面。

此外,还添加了一个窗口事件

windowClosing,可以关闭运行的程序。

窗口事件的代码实现:

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

(0); } }); 加密操作模块

本程序采用简单的加密算法,即把从文本区获得的文本文件,初始化,存放到一个数组中,然后进行异或运算,把结果重新存放于该数组中,从而显现在“文件浏览窗口”中。

代码实现:

if()==button1) {

char a[]=().toCharArray();/*把texta中获得的文本,进行初始化,与原字符串长度相等,并将该字符串对象的全部字符复制到该数组a[]中*/

(null); int n;

char secret=' '; for(int i=0;i<;i++) {

char c=(char)(secret^a[i] ;oCharArray(); (null);

}

}

int n;

char secret=' '; for(int i=0;i<;i++) {

char c=(char)(secret^a[i]);ength()); (); (); }

catch (IOException e2) { } }

文件选择模块

同上个文件保存模块类似,依旧在选择菜单项“打开”后,查找读入文件,读取字符流,弹出“打开对话框”,从而可实现获取文件。

出口值:被选文件的路径

代码实现: public

void

actionPerformed(ActionEvent

e)

邓安文. 密码学—加密演算法[M].北京: 水利水电出版社, 2. 杨波. 现代密码学(第2版)[M]. 清华大学出版社, 2007.

3. 斯廷森(Stinson,.) 著,冯登国 等译. 密码学原理与实践(第三版)[M]. 电子工业出版社, 2009.

4. Liberty J. Programming C#: Building. Net applications with C#[M]. O'Reilly Media, 2009.

5. 张仕斌 等. 应用密码学[M]. 西安电子科技大学出版社, 2009.

6. 张广彬,孟红蕊,张永宝. C++课程设计案例精编[M]. 清华大学出版社,2005. 7. 朱喜福. C++程序设计[M]. 人民邮电出版社,2005.

8. 宛延闿. 实用C++程序设计教程[M]. 机械工业出版社,2006.

9. Hejlsberg A, Wiltamuth S, and Golde P. The C# programming language[M]. Addison-Wesley Professional, 2006.

10. Savitch W. Problem solving with C++[M]. Addison-Wesley Publishing Company, 2008.

因篇幅问题不能全部显示,请点此查看更多更全内容