ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:139.42KB ,
资源ID:5691029      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5691029.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JAVA课程设计 文件加密解密.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JAVA课程设计 文件加密解密.docx

1、JAVA课程设计 文件加密解密辽 宁 工 业 大 学JAVA程序设计 课程设计(论文)题目: 文件加密解密 院(系): 软件学院 专业班级: 软件工程 学 号: 学生姓名: *教师职称: 讲 师 起止时间: 2012.6.18至2012.7.1 程序设计专题(报告)任务及评语院(系):软件学院 教研室:软件教研室学 号 学生姓名 专业班级软件工程 程序设计(报告)题目文件加密解密程序设计(报告)任务程序设计专题的任务与要求:(1)掌握Java编程、面向对象的基础知识。(2)较熟练地编写Java应用程序Application。(3)了解Java的常用标准类库、编程技巧、异常处理。(5)联系已学过

2、的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 2012 年 7 月 5 日第1章 课程设计的目的与要求1.1 课程设计目的JAVA程序设计是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程

3、序设计专题实际是计算机相关专业学生学习完JAVA程序设计课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。1.2 课程设计的实验环境硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。1.3 课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。1.4 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成

4、各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。第2章 课程设计内容2.1课程设计主要内容文件加密解密是科技飞速发展的中通信安全保密问题的最终结果,无论是当今还是未来计算机信息的保密问题显得越来越重要,

5、无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全。 其中,信息安全的核心是密码技术。在这个java编写的加密解密程序中,我这个设计实现了文本编辑器的基本功能有:打开文件,文件保存,文件另存为,文件加密,文件解密,及其查找。2.2概要设计2.2.1功能分析根据系统的设计要求,设计的系统功能模块如图2-1所示。 图2-1 系统功能模块图在做加密解密工具时首先确定的是界面的设计,此工具的主界面主要有三个标签:加密、解密、路径设置。加密标签界面里设计了四个panel工具,主要用于实现文件的加密功能,当向panel1或panel2拖入要加密的文件时它

6、会弹出一个要输入密码的对话框,此界面的下方有一个textbox用于接收传进来的文件路径。在解密标签的窗口中的界面基本上与加密标签里一样,但用于实现文件的解密功能。加密解密工具中的路径设置用于设置加密解密文件存放路径,这一块中要分两个区域:加密文件路径设置区(groupBox1)和解密文件路径设置区(groupBox2),在groupBox1标签中有两个单选按钮:radiobutton1设置的路径与原文件路径相同和radiobutton2设置了自定义的路径,一个文本框按钮(textbox3)一个选择button按钮。Button按钮是获得文件存储的路径,得到路径后就会把路径传给文本框按钮text

7、Box3,textBox3的作用是将从button那得到的路径传加密标签是的textBox1。解密文件路径设置区的设计也和加密文件路径设置区一样,这里就不多说了。在设计时还要用到两个对话框,用于设置加密或解密密码。有两个文本框用于输入密码,一个确定按钮用来传送密码,一个取消按钮用来取消当前的操作。2.2.2自定义类说明1.类名:Cryp 作用:主类 继承的父类:没有 实现的接口:没有2.类名:encryptt 作用:主类 继承的父类: Frame 实现的接口:ActionListener3.类名:Key 作用:主类 继承的父类: 没有 实现的接口:没有4.类名:MessageDigestExa

8、mple 作用:主类 继承的父类: 没有 实现的接口:没有表2.1 主类成员变量表成员变量描述变量类型名称初始化界面intmap初始化界面intran设置字体intwidth设置字体intheight坐标intlastx坐标intlasty拖动鼠标后坐标intlast_downx拖动鼠标后坐标intlast_downy拖动鼠标后坐标intstepx拖动鼠标后坐标intstepy选择booleanchoose数组booleanclick按下鼠标booleanm_down放开鼠标booleanm_drag放开鼠标booleannot_redraw设置字体Fontfont1表2.2 主类方法表方法名

9、功能备注init程序的初始化initForm面板初始化mouseClicked单击鼠标时产生的事件接口方法mouseEntered鼠标进入某个区域时产生的事件接口方法mouseExited鼠标退出某个区域时产生的事件接口方法mouseMoved移动鼠标时产生的事件接口方法mouseDragged拖动鼠标时产生的事件接口方法mousePressed按下鼠标时产生的事件接口方法mouseReleased放开鼠标时产生的事件接口方法wingame程序是否结束initgame游戏初始化“以下是我找到的方法”“功能不清楚”JFileChooser实例化文件选择器构造方法serialVersionUID实

10、例化文件选择器windowClosingactionPerformeddecode构造方法fenencodehe无法继续解密shuchuqu文件不能为空2.3详细设计2.3.1界面设计1加密解密界面设计运行Microsoft Visual Studio环境,创建一个项目命名为:WindowsApplication1,在项目里建一个表单Form1,把它作为文件加密解密工具的主界面。主界面窗口有三个标签:设置、加密、解密,要分别对这三个标签做详细的设计,设计时要用到Microsoft Visual Studio里的工具箱里面的工具。每个标签的设计如下:(1)“加密”标签的设计此标签包含有4个pan

11、el(此处只实现一个)和textBox1,textBox1用于存放传过来的加密路径。panel主要实现文件的拖放和文件的加密功能。当一个文件拖到panel中时,会弹出一个要求输入密码的对话框。把输入的密码传回到Form1的panel1_dragDrop中,实现拖放功能.此标签包含有4个panel(此处只实现一个)和textBox1,textBox1用于存放传过来的加密路径。panel主要实现文件的拖放和文件的加密功能。当一个文件拖到panel中时,会弹出一个要求输入密码的对话框。把输入的密码传回到Form1的panel1_dragDrop中。(2)“解密”标签的设计此界面中有一个panel和一

12、个textbox2, textbox2用于存放传过来的加密路径,panel用于实现文件的拖放和解密功能,当一个文件拖到panel中时,会弹出一个输入密码对话框。把输入的密码传回到Form1的panel5_dragDrop中。(3)“设置”标签的设计此界面主要有两个部分组成:加密文件存储路径和解密文件存储路径,由groupbox1、groupbox2、组成。在groupbox11中有两个单选按钮radiobutton1和radiobutton2,分别命名为“与加密文件相同目录”、 “指定存储路径” ,一个文本框textbox3和一个button1,textbox3用于存放指定的加密路径,butt

13、on1实现文件的路径的选择。在代码设计部分,要首先让radiobutton1在程序运行时自动获得焦点,在radiobutton1获得焦点时,radiobtuuon2将会失去焦点,同时textbox3和button1的状态为不可见状态。要实现这些功能就要把radiobutton1和radiobutton2同时放到一个函数中按照以上的步骤就可以实现选择指定的加密路径,但路径只会传给textBox3,在button2中添加如下代码,使textBox3中存放的路径值传给textBox1,并将textBox3的值设置为空。解密部分的实现过程跟加密大致相同,这里不给予详细说明。2. 加密密钥界面设计加密密

14、钥界面Form2里由两个标签:label1、label2,分别命名为输入密码、确认密码;两个文本框:textBox1、textBox2,用于用户输入密码(密码以*的形式显示出来);两个按键:button1、button2(分别为确认、取消)。在Form2开始设一个全局变量mm1,当单击确定按钮时对textBox1和textBox2中的内容进行判断,如果两个文本框中输入的值相同,则把textBox2中的值赋给mm1, 提示“加密成功”,并关闭此Form2。如果textBox1与textBox2中的值不同则提示“密码不同,请重新输入!”,并把textBox1与textBox2中的值清空,以便用户重

15、新输入密码。button2的作用是关闭当前对话框不做任何操作,命令为:this.Close()。这样加密密钥窗口窗口就设计好了。3. 解密密钥界面设计解密密钥界面的设计与加密密钥界面的设计过程都是一样的,同样Form3由两个标签:label1、label2,分别命名为输入密码、确认密码;两个文本框:textBox1、textBox2,用于用户输入密码(密码以*的形式显示出来);两个按键:button1、button2(分别为确认、取消)。在Form2开始设一个全局变量mm2,当单击确定按钮时对textBox1和textBox2中的内容进行判断,如果两个文本框中输入的值相同,则把textBox2

16、中的值赋给mm2,提示“解密成功”,并关闭此Form2。如果textBox1与textBox2中的值不同则提示“密码不同,请重新输入!”,并把textBox1与textBox2中的值清空,以便用户重新输入密码。button2的作用是关闭当前对话框不做任何操作,命令为:this.Close()。2.4程序实现2.4.1源码分析import java.awt.*;import java.awt.event.*; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import

17、 java.io.FileOutputStream;import java.io.IOException; import javax.swing.JFileChooser;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTextArea; public class encrypt extends Frame implements ActionListener private MenuBar menubar;private Menu menu1, menu2,menu3, menu

18、4;private MenuItem menuitem1,menuitem1_1, menuitem2,menuitem2_2,menuitem3,menuitem22,menuitem22_2,menuitem4;private static JTextArea txtarea;private MenuShortcut ms1, ms2, ms3, ms4;File f;encrypt() super(本程序:加密解密程序); txtarea = new JTextArea(); menubar = new MenuBar(); menu1 = new Menu(文件); menuitem1

19、 = new MenuItem(打开); menuitem1_1 = new MenuItem(保存); ms1 = new MenuShortcut(KeyEvent.VK_N); menuitem1.addActionListener(this); menuitem1_1.addActionListener(this); menu1.add(menuitem1); menu1.add(menuitem1_1); menu2 = new Menu(保护); menuitem2 = new MenuItem(二进制加密); menuitem2_2 = new MenuItem(二进制解密);

20、menuitem22 = new MenuItem(十六进制加密); menuitem22_2 = new MenuItem(十六进制解密); menuitem2.addActionListener(this); ms2 = new MenuShortcut(KeyEvent.VK_A); menuitem2_2.addActionListener(this); menu2.add(menuitem2); menu2.add(menuitem2_2); menu2.add(menuitem22); menu2.add(menuitem22_2); menu3 = new Menu(编辑); m

21、enuitem3 = new MenuItem(清空); menu3.add(menuitem3); menuitem3.addActionListener(this); menuitem22.addActionListener(this); menuitem22_2.addActionListener(this); menu4 = new Menu(帮助); menuitem4 = new MenuItem(关于); ms4 = new MenuShortcut(KeyEvent.VK_H); menuitem4.addActionListener(this); menu4.add(menu

22、item4); menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); menubar.add(menu4); setMenuBar(menubar); setLayout(new BorderLayout(); add(new JScrollPane(txtarea), BorderLayout.CENTER); txtarea.setLineWrap(true); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) Sys

23、tem.exit(0); ); setSize(900, 600); setVisible(true); validate(); public void actionPerformed(ActionEvent e) if (e.getSource() = menuitem1) try file(); qu(); catch(Exception ee); else if (e.getSource() = menuitem1_1) try file(); shuchu(); catch(Exception ee); else if (e.getSource() = menuitem2) txtar

24、ea.setText(fen(encode(txtarea.getText(); else if (e.getSource() = menuitem2_2) System.out.println(1); String string=he(txtarea.getText(); if(!string.equals() txtarea.setText(decode(string); else if (e.getSource() = menuitem22) txtarea.setText(encode(txtarea.getText(); else if (e.getSource() = menuit

25、em22_2) if(!decode(txtarea.getText().equals() txtarea.setText(decode(txtarea.getText(); else if (e.getSource() = menuitem3) txtarea.setText(); else if (e.getSource() = menuitem4) txtarea.setText(本程序: n加密解密多少次随自己愿意.只要你记得解密步骤.); public static void main(String args) new encrypt();public void file() JFi

26、leChooser fileChooser = new JFileChooser(); / 实例化文件选择器 fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); / 设置文件选择模式,此处为文件和目录均可 if (fileChooser.showOpenDialog(encrypt.this) = JFileChooser.APPROVE_OPTION) / 弹出文件选择器,并判断是否点击了打开按钮 String fileName = fileChooser.getSelectedFile().getAbs

27、olutePath(); / 得到选择文件或目录的绝对路径 f=new File(fileName); private static String hexString = 123456789ABCDEF; private static String decode(String theHex) String theRst = ; byte theByte = new bytetheHex.length() / 2; try for (int i = 0; i theHex.length(); i += 2) eBytei / 2 = Integer.decode(0X+ theHex.subst

28、ring(i, i + 2).byteValue(); theRst = new String(theByte, 0, theByte.length ); catch (Exception Ue) JOptionPane.showMessageDialog(null, 无法继续解密) ; return theRst; private static String encode(String theStr) byte bytes; String result = ; int tmp; String tmpStr; bytes = theStr.getBytes(); for (int i = 0; i bytes.length; i+) if (bytesi 0) tmp = 256 + bytesi; tmpStr = Integer.toHexString(tmp).toUpperCase(); result += tmpStr; else tmpStr = Integer.toHexString(bytesi).toUpperCase(); result += tmpStr

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

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