您好,欢迎访问三七文档
兰州商学院陇桥学院工学系课程设计报告课程名称:Java设计题目:加密与解密系别:工学系专业(方向):信息管理与信息系统年级、班:2012级(2)班学生姓名:费亚芬学生学号:20120651208指导教师:张鑫2014年7月1日目录一、系统开发的背景.............................................................................................................................................1二、系统分析与设计.............................................................................................................................................1(一)系统功能要求.......................................................................................................................................1(二)系统模块结构设计...............................................................................................................................2三、系统的设计与实现.........................................................................................................................................2(一)图形用户界面模块................................................................................................................................2(二)加密操作模块........................................................................................................................................3(三)解密操作模块........................................................................................................................................4(四)文件保存模块........................................................................................................................................4(五)文件选择模块........................................................................................................................................5四、系统测试.........................................................................................................................................................6(一)测试加密...................................................................................................................................................6(二)测试选择加密文件...................................................................................................................................6(三)测试生成加密文件...................................................................................................................................6(四)测试浏览加密文件...................................................................................................................................7(五)测试解密文件...........................................................................................................................................8五、总结.................................................................................................................................................................8六、附件(代码、部分图表)...........................................................................................................................101加密与解密一、系统开发的背景随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密算法有多种,本程序设计对文件的加密使用的是最基础的异或加密算法。Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。本程序充分利用Java语言的特点,针对当下社会比较重视的文件加密,设计了本程序。使用本程序可以对txt,word等多种文件进行加密解密,使用便捷实用,功能完善,满足了用户对文件安全性的需求。二、系统分析与设计(一)系统功能要求可以采用图形用户界面,给定任意一个文本文件,进行加密,生成另一个文件,然后对加密后的文件还原。1、向图形用户界面中添加组件;2、设置各个组件的布局;3、添加窗口事件;4、查找读入及写入文件,并显示;5、加密功能实现;6、解密功能实现;2(二)系统模块结构设计通过对系统功能的分析,加密与解密功能如图1所示。图1加密与解密功能图三、系统的设计与实现(一)图形用户界面模块分析:在图形用户界面,设置两个面板,并分别设置显示其组件的布开始弹出文件加密器对话框点击“文件”菜单下的“打开”,获得文件对显示在浏览窗口的“文件”加密生成加密文件点击“保存”,选择路径,生成新文件,并以“.txt”命名点击“文件”菜单下的“打开”,获得加密后的文件对显示在浏览窗口的“文件”解密生成解密文件结束3局。设置两个菜单项,分别为“打开”和“保存”;设置两个按钮,分别为“加密”和“解密”;创建一个文本区,用一个标签注明“文件浏览窗口”,这就是整个图形用户界面。此外,还添加了一个窗口事件windowClosing,可以关闭运行的程序。窗口事件的代码如下所示:addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}(二)加密操作模块分析:本程序采用简单的加密算法,即把从文本区获得的文本文件,初始化,存放到一个数组中,然后进行异或运算,把结果重新存放于该数组中,从而显现在“文件浏览窗口”中。代码如下:if(e.getSource()==button1){chara[]=texta.getText().toCharArray();/*把texta中获得的文本,进行初始化,与原字符串长度相等,并将该字符串对象的全部字符复制到该数组a[]中*/texta.setText(null);intn;charsecret='';for(inti=0;ia.length;i++){charc=(char)(secret^a[i];//进行异或运算)texta.append(+c);}}4(三)解密操作模块分析:解密操作其实同加密操作相同,依旧首先打开加密后的文件,使其显示在文本区中,再同样对数组里的元素进行初始化,进行异或运算,即可得到解密后的文件,再显示到“文件浏览窗口”中。入口参数:指定文件路径代码如下:if(e.getSource()==button2){chara[]=texta.getText().toCharArray();texta.setText(null);intn;charsecret='';for(inti=0;ia.length;i++){charc=(char)(secret^a[i]);//再次异或运算,即还原texta.append(+c);}}(四)文件保存模块分析:本程序最大的特点就是:可以选择是否保存加密后的文本文件。因为加密后的文件先显示在文本区中,之后选择菜单项“保存”,即可弹出“保存对话框”,进行查找写入文件,写入字符流,从而实现保存。代码如下: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);//写入字符流5BufferedWriterout=newBufferedWriter(tofile);out.write(texta.getText(),0,(texta.getText()).length());out.close();tofile.close();}catch(IOExceptione2){}}}(五)文件选择模块分析:同上个文件保存模块类似,依旧在选择菜单项“打开”后,查找读入文件,读取字符流,弹出“打开对话框”,从而可实现获取文件。出口值:被选文件的路径代码如下:publicvoidactionPerformed(ActionEvente)//查找读入文件{if(e.getSource()==itemOpen){filedialog_load.setVisible(true);texta.setText(null);Strings;if(filedialog_load.get
本文标题:加密解密课程设计
链接地址:https://www.777doc.com/doc-6196256 .html