加密解密课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
兰州商学院陇桥学院
工学系课程设计报告
课程名称: Java 设计题目:加密与解密
系别:工学系
专业 (方向):信息管理与信息系统
年级、班:2012级(2)班
学生姓名:费亚芬
学生学号:20120651208
指导教师:张鑫
2014年7 月1日
目录
一、系统开发的背景 (1)
二、系统分析与设计 (1)
(一)系统功能要求 (1)
(二)系统模块结构设计 (2)
三、系统的设计与实现 (2)
(一)图形用户界面模块 (2)
(二)加密操作模块 (3)
(三)解密操作模块 (4)
(四)文件保存模块 (4)
(五)文件选择模块 (5)
四、系统测试 (6)
(一)测试加密 (6)
(二)测试选择加密文件 (6)
(三)测试生成加密文件 (6)
(四)测试浏览加密文件 (7)
(五)测试解密文件 (8)
五、总结 (8)
六、附件(代码、部分图表) (10)
加密与解密
一、系统开发的背景
随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密算法有多种,本程序设计对文件的加密使用的是最基础的异或加密算法。
Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。本程序充分利用Java语言的特点,针对当下社会比较重视的文件加密,设计了本程序。使用本程序可以对txt,word等多种文件进行加密解密,使用便捷实用,功能完善,满足了用户对文件安全性的需求。
二、系统分析与设计
(一)系统功能要求
可以采用图形用户界面,给定任意一个文本文件,进行加密,生成另一个文件,然后对加密后的文件还原。
1、向图形用户界面中添加组件;
2、设置各个组件的布局;
3、添加窗口事件;
4、查找读入及写入文件,并显示;
5、加密功能实现;
6、解密功能实现;
(二)系统模块结构设计
通过对系统功能的分析,加密与解密功能如图1所示。
图1 加密与解密功能图
三、系统的设计与实现
(一)图形用户界面模块
分析:在图形用户界面,设置两个面板,并分别设置显示其组件的布
局。设置两个菜单项,分别为“打开”和“保存”;设置两个按钮,分别为“加密”和“解密”;创建一个文本区,用一个标签注明“文件浏览窗口”,这就是整个图形用户界面。
此外,还添加了一个窗口事件windowClosing,可以关闭运行的程序。
窗口事件的代码如下所示:
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
(二)加密操作模块
分析:本程序采用简单的加密算法,即把从文本区获得的文本文件,初始化,存放到一个数组中,然后进行异或运算,把结果重新存放于该数组中,从而显现在“文件浏览窗口”中。
代码如下:
if(e.getSource()==button1)
{
char a[]=texta.getText().toCharArray();/*把texta中获得的文本,进行初始化,与原字符串长度相等,并将该字符串对象的全部字符复制到该数组a[]
中*/
texta.setText(null);
int n;
char secret=' ';
for(int i=0;i { char c=(char)(secret^a[i] ;//进行异或运算) texta.append(""+c); } } (三) 解密操作模块 分析:解密操作其实同加密操作相同,依旧首先打开加密后的文件,使其显示在文本区中,再同样对数组里的元素进行初始化,进行异或运算,即可得到解密后的文件,再显示到“文件浏览窗口”中。 入口参数:指定文件路径 代码如下: if(e.getSource()==button2) { char a[]=texta.getText().toCharArray(); texta.setText(null); int n; char secret=' '; for(int i=0;i { char c=(char)(secret^a[i]);//再次异或运算,即还原 texta.append(""+c); } } (四)文件保存模块 分析:本程序最大的特点就是:可以选择是否保存加密后的文本文件。因为加密后的文件先显示在文本区中,之后选择菜单项“保存”,即可弹出“保存对话框”,进行查找写入文件,写入字符流,从而实现保存。 代码如下: if(e.getSource()==itemSave)//查找写入的文件 { filedialog_save.setVisible(true); if(filedialog_save.getFile()!=null) { try { File file=new File(filedialog_save.getDirectory(),filedialog_save.getFile()); FileWriter tofile=new FileWriter(file);//写入字符流