文本文档的加密与解密课程设计说明书文档格式.docx

上传人:b****6 文档编号:15902142 上传时间:2022-11-16 格式:DOCX 页数:12 大小:504.78KB
下载 相关 举报
文本文档的加密与解密课程设计说明书文档格式.docx_第1页
第1页 / 共12页
文本文档的加密与解密课程设计说明书文档格式.docx_第2页
第2页 / 共12页
文本文档的加密与解密课程设计说明书文档格式.docx_第3页
第3页 / 共12页
文本文档的加密与解密课程设计说明书文档格式.docx_第4页
第4页 / 共12页
文本文档的加密与解密课程设计说明书文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

文本文档的加密与解密课程设计说明书文档格式.docx

《文本文档的加密与解密课程设计说明书文档格式.docx》由会员分享,可在线阅读,更多相关《文本文档的加密与解密课程设计说明书文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

文本文档的加密与解密课程设计说明书文档格式.docx

摘要

随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。

文件的加密主要是由加密算法实现,加密算法有多种,常见的有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.系统设计

2.1程序流程图

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

图4-1流程图

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

模块定义

主函数模块:

生成加密器框体;

获取数据的输入;

调用加密或解密函数。

加密模块:

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

加密操作模块:

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

解密模块:

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

解密操作模块:

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

转换模块:

转换模块一:

输入密码的字符形式,返回字节数组形式。

转换模块二:

计算一个16进制字符的10进制值。

文件选择模块:

选择需要加密或解密的文件。

密码生成模块:

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

3.系统实现

3.1图形用户界面模块

在图形用户界面,设置两个面板,并分别设置显示其组件的布局。

设置两个菜单项,分别为“打开”和“保存”;

设置两个按钮,分别为“加密”和“解密”;

创建一个文本区,用一个标签注明“文件浏览窗口”,这就是整个图形用户界面。

此外,还添加了一个窗口事件windowClosing,可以关闭运行的程序。

窗口事件的代码实现:

addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

});

}

3.2加密操作模块

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

代码实现:

if(e.getSource()==button1)

chara[]=texta.getText().toCharArray();

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

texta.setText(null);

intn;

charsecret='

'

;

for(inti=0;

i<

a.length;

i++)

charc=(char)(secret^a[i];

//进行异或运算)

texta.append("

"

+c);

}

3.3解密操作模块

解密操作其实同加密操作相同,依旧首先打开加密后的文件,使其显示在文本区中,再同样对数组里的元素进行初始化,进行异或运算,即可得到解密后的文件,再显示到“文件浏览窗口”中。

入口参数:

指定文件路径

if(e.getSource()==button2)

{

charc=(char)(secret^a[i]);

//再次异或运算,即还原

3.4文件保存模块

本程序最大的特点就是:

可以选择是否保存加密后的文本文件。

因为加密后的文件先显示在文本区中,之后选择菜单项“保存”,即可弹出“保存对话框”,进行查找写入文件,写入字符流,从而实现保存。

if(e.getSource()==itemSave)//查找写入的文件

filedialog_save.setVisible(true);

if(filedialog_save.getFile()!

=null)

try

{

Filefile=newFile(filedialog_save.getDirectory(),filedialog_save.getFile());

FileWritertofile=newFileWriter(file);

//写入字符流

BufferedWriterout=newBufferedWriter(tofile);

out.write(texta.getText(),0,(texta.getText()).length());

out.close();

tofile.close();

}

catch(IOExceptione2)

3.5文件选择模块

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

出口值:

被选文件的路径

publicvoidactionPerformed(ActionEvente)//查找读入文件

{

if(e.getSource()==itemOpen)

filedialog_load.setVisible(true);

Strings;

if(filedialog_load.getFile()!

Filefile=newFile(filedialog_load.getDirectory(),filedialog_load.getFile());

FileReaderfile_reader=newFileReader(file);

//读取字符流

BufferedReaderin=newBufferedReader(file_reader);

while((s=in.readLine())!

texta.append(s+'

\n'

);

in.close();

file_reader.close();

catch(IOExceptione1)

4.系统测试

4.1加密

首先在计算机D盘文件夹名为aaaa的文件夹创建一个名为project文本文件用做测试。

运行程序,弹出如图4-1的对话框

图4-1运行程序

点击“文件”,选择“打开”,即弹出“打开”对话框,选择一个文本文件,弹出如图4-2的对话框。

图4-2选择加密文件

选择你所要加密的文件后,打开文件弹出如图4-3的对话框

图4-3打开选择文件

选择文件后,点击随机产生密码或自行输入所要求规格的密码,点击加密即可完成对文件的加密同时被保存,完成加密,弹出如图4-4的对话框。

图4-4完成文件加密

4.2解密

解密操作中对文件选择,密码输入和加密操作是一样的。

将刚刚加密的程序进行解密,打开密文文件所在位置,弹出如图4-5的对话框

图4-4打开密文文件

输入你所设计的密码如图4-5

图4-5

查找点击被加密的文件project,弹出如图4-6的对话框

图4-6选择加密文件

选择所加密文件,点击解密进行机密,完成解密,弹出如图4-7的对话框

图4-7解密成功

5.总结

这次课程设计的要求并不多,只要实现加密与解密功能,而且只需要采用一种加密算法,但是为了本次课程设计,我们组也搜索了大量的资料,并根据在课堂上,书本上,老师讲过的知识,结合自身主观和客观因素,制定了本次课程设计的目标,并齐心协力,完成了此次设计。

通过本次的课程设计,我们还知道了许多自身存在的不足,例如仅掌握了一种加密算法,但在日益发达的社会商业等领域,加密解密需要做的还非常多,并且Java领域博大精深,我们现在只是学到了它的一点皮毛而已,所以还需多多努力。

但是通过这些我还是学到了很多东西,先不说其他的,我最起码最基础的加密算法,而且以后可以运用到自己想要保密的文件当中去。

通过这次课程设计,我用JAVA语言实现,我这是我对JAVA语言有了根深的了解巩固了以前学到的知识,也学习到了新的知识,课程设计虽然暂告一个段落,但我们学习Java的步伐不会终止。

在程序设计之初,考虑的是如何实现DES算法,但发现DES算法对于本次小程序来说,的确过于繁琐,但当我们发现采用简化后的DES算法----异或算法也可实现本功能,所以以后大大减少了工作量,可以说用Java语言是程序实现的一个成功之处。

Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1