兰州商学院陇桥学院工学系课程设计报告
课程名称: Java 设计题目:加密与解密
系别:工学系
专业 (方向):信息管理与信息系统
年级、班:2012级(2)班
学生姓名:费亚芬
学生学号: 208
指导教师:张鑫
2014年7 月 1日
目录
一、系统开发的背景................................. 错误!未定义书签。
二、系统分析与设计................................. 错误!未定义书签。(一)............................................. 系统功能要求错误!未定义书签。(二)......................................... 系统模块结构设计错误!未定义书签。
三、系统的设计与实现............................... 错误!未定义书签。(一)图形用户界面模块 ........................... 错误!未定义书签。(二)加密操作模块 ............................... 错误!未定义书签。
(三)解密操作模块................................ 错误!未定义书签。(四)文件保存模块 ............................... 错误!未定义书签。
(五)文件选择模块 ............................... 错误!未定义书签。
四、系统测试....................................... 错误!未定义书签。(一)测试加密..................................... 错误!未定义书签。(二)测试选择加密文件............................. 错误!未定义书签。(三)测试生成加密文件............................. 错误!未定义书签。(四)测试浏览加密文件............................. 错误!未定义书签。(五)测试解密文件................................. 错误!未定义书签。
五、总结........................................... 错误!未定义书签。
六、附件(代码、部分图表) ......................... 错误!未定义书签。
加密与解密
一、系统开发的背景
随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密算法有多种,本程序设计对文件的加密使用的是最基础的异或加密算法。
Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。本程序充分利用Java语言的特点,针对当下社会比较重视的文件加密,设计了本程序。使用本程序可以对txt,word等多种文件进行加密解密,使用便捷实用,功能完善,满足了用户对文件安全性的需求。
二、系统分析与设计
(一)系统功能要求
可以采用图形用户界面,给定任意一个文本文件,进行加密,生成另一个文件,然后对加密后的文件还原。
1、向图形用户界面中添加组件;
2、设置各个组件的布局;
3、添加窗口事件;
4、查找读入及写入文件,并显示;
5、加密功能实现;
6、解密功能实现;
(二)系统模块结构设计
通过对系统功能的分析,加密与解密功能如图1所示。
图1 加密与解密功能图
三、系统的设计与实现
(一)图形用户界面模块
分析:在图形用户界面,设置两个面板,并分别设置显示其组件的布
局。设置两个菜单项,分别为“打开”和“保存”;设置两个按钮,分别为“加密”和“解密”;创建一个文本区,用一个标签注明“文件浏览窗口”,这就是整个图形用户界面。
此外,还添加了一个窗口事件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)
;
import .*;
import .*;
class Myframe extends Frame implements ActionListener {
FileDialog filedialog_save,filedialog_load;
Button button1,button2;
Label label;
MenuBar bar;
Menu menu;
MenuItem itemOpen,itemSave;
TextArea texta;
Myframe(String s) Box box3ength());
();
();
}
catch (IOException e2)
{
}
}
}
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]);//再次异或运算,即还原
(""+c);
}
}
}
}
public class E1{
public static void main(String args[]){
Myframe frame = new Myframe("加密与解密"); }
}