【Java精品源码栏目提醒】:网学会员鉴于大家对Java精品源码十分关注,论文会员在此为大家搜集整理了“JAVA课程设计_文件加密解密 - 大学课件”一文,供大家参考学习
辽 宁 工 业 大 学
JAVA 程序设计 课程设计(论文) 题目: 文件加密解密 院(系): 软件学院 专业班级: 软件工程 学 号: 学生彦华 教师职称: 讲 师 起止时间: 2012.6.18 至 2012.7.1 程序设计专题(报告)任务及评语 院(系):软件学院 教研室:软件教研室 学 号 学生姓名 专业班级 软件工程程序设计(报告) 文件加密解密 题目 程序设计专题的任务与要求: (1)掌握
Java 编程、面向对象的基础知识。
(2)较熟练地编写
Java 应用程序 Application。
程 (3)了解
Java 的常用标准类库、编程技巧、异常处理。
序 设 (5)联系已学过的内容,巩固所学的理论,增强独立工作能力。
计 ( (6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能 报 力都有一个很大的提高。
告 ) (7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素 任 务 质的提高起一个积极的推动作用。
课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。
正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。
指 导 教 师 评 语 及 成 绩 成绩: 指导教师签字: 2012 年 7 月 5 日 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) 目 录第1章 课程设计的目的与要求 ................................................ 1 1.1 课程设计目的 ........................................................ 1 1.2 课程设计的实验环境 .................................................. 1 1.3 课程设计的预备知识 .................................................. 1 1.4 课程设计要求 ........................................................ 1第2章 课程设计内容 ........................................................ 2 2.1 课程设计主要内容 .................................................... 2 2.2 概要设计 ............................................................ 2 2.2.1 功能分析 ...................................................... 2 2.2.2 自定义类说明 .................................................. 3 2.3 详细设计 ............................................................ 4 2.3.1 界面设计 ...................................................... 4 2.4 程序实现 ............................................................ 6 2.4.1
源码分析 ...................................................... 6 2.4.2 程序运行情况 ................................................. 11 2.4.3 程序异常处理 ................................................. 12第 3 章 课程设计总结 ........................................................ 14参考资料 15 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) 第 1 章 课程设计的目的与要求1.1 课程设计目的 《
JAVA 程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
本课程的程序设计专题实际是计算机相关专业学生学习完《
JAVA 程序设计》课程后,进行的一次全面的综合训练,
JAVA 程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
1.2 课程设计的实验环境 硬件要求能运行 Windows 9.X 操作系统的微机系统。
JAVA 程序设计语言及相应的集成开发环境,J2SDK 和 ECLIPSE 开发工具。
1.3 课程设计的预备知识 熟悉
JAVA 语言及 ECLIPSE 开发工具。
1.4 课程设计要求 按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握
JAVA 程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。
同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。
1 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) 第 2 章 课程设计内容2.1 课程设计主要内容 文件加密解密是科技飞速发展的中通信安全保密问题的最终结果,无论是当今还是未来计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证 Internet 网上信息传输的安全,需要保证信息安全。
其中,信息安全的核心是密码技术。
在这个
java 编写的加密解密程序中,我这个设计实现了文本编辑器的基本功能有:打开文件文件保存文件另存为文件加密,文件解密及其查找。
2.2 概要设计2.2.1 功能分析根据系统的设计要求,设计的系统功能模块如图 2-1 所示。
文件加密解密工具 加 路 解 径 密 设 密 置 DE DES 设 设 S 加 置 置 解 密 加 解 密 密 密 图 2-1 系统功能模块图 在做加密解密工具时首先确定的是界面的设计,此工具的主界面主要有三个标签:加密、解密、路径设置。
加密标签界面里设计了四个 panel 工具,主要用于实现文件的加密功能,当向 panel1 或 panel2 拖入要加密的文件时它会弹出一个要输入密码的对话框,此界面的下方有一个 textbox 用于接收传进来的文件路径。
在解密标签的窗口中的 2 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)界面基本上与加密标签里一样,但用于实现文件的解密功能。
加密解密工具中的路径设置用于设置加密解密文件存放路径,这一块中要分两个区域:加密文件路径设置区 在groupBox1和解密文件路径设置区groupBox2, groupBox1 标签中有两个单选按钮:radiobutton1 设置的路径与原文件路径相同和 radiobutton2 设置了自定义的路径,一个文本框按钮textbox3一个选择 button 按钮。
Button 按钮是获得文件存储的路径,得到路径后就会把路径传给文本框按钮 textBox3,textBox3 的作用是将从 button 那得到的路径传加密标签是的 textBox1。
解密文件路径设置区的设计也和加密文件路径设置区一样,这里就不多说了。
在设计时还要用到两个对话框,用于设置加密或解密密码。
有两个文本框用于输入密码,一个确定按钮用来传送密码,一个取消按钮用来取消当前的操作。
2.2.2 自定义类说明1.类名:Cryp 作用:主类 继承的父类:没有 实现的接口:没有2.类名:encryptt 作用:主类 继承的父类: Frame 实现的接口:ActionListener3.类名:Key 作用:主类 继承的父类: 没有 实现的接口:没有4.类名:MessageDigestExample 作用:主类 继承的父类: 没有 实现的接口:没有 表 2.1 主类成员变量表 成员变量描述 变量类型 名称初始化界面 int map初始化界面 int ran设置字体 int width设置字体 int height坐标 int lastx坐标 int lasty拖动鼠标后坐标 int last_downx拖动鼠标后坐标 int last_downy拖动鼠标后坐标 int stepx 3 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)拖动鼠标后坐标 int stepy选择 boolean choose数组 boolean click按下鼠标 boolean m_down放开鼠标 boolean m_drag放开鼠标 boolean not_redraw设置字体 Font font1 表 2.2 主类方法表 方法名 功能 备注init 程序的初始化initForm 面板初始化mouseClicked 单击鼠标时产生的事件 接口方法mouseEntered 鼠标进入某个区域时产生的事件 接口方法mouseExited 鼠标退出某个区域时产生的事件 接口方法mouseMoved 移动鼠标时产生的事件 接口方法mouseDragged 拖动鼠标时产生的事件 接口方法mousePressed 按下鼠标时产生的事件 接口方法mouseReleased 放开鼠标时产生的事件 接口方法wingame 程序是否结束initgame 游戏初始化“以下是我找到的方法” “功能不清楚”JFileChooser 实例化文件选择器 构造方法serialVersionUID 实例化文件选择器windowClosingactionPerformeddecode 构造方法fenencodehe 无法继续解密shuchuqu 文件不能为空2.3 详细设计2.3.1 界面设计1.加密解密界面设计 运行 Microsoft Visual Studio 环境,创建一个项目命名为:WindowsApplication1, 4 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)在项目里建一个表单 Form1,把它作为文件加密解密工具的主界面。
主界面窗口有三个标签:设置、加密、解密,要分别对这三个标签做详细的设计,设计时要用到 MicrosoftVisual Studio 里的工具箱里面的工具。
每个标签的设计如下:(1)“加密”标签的设计 此标签包含有 4 个 panel(此处只实现一个)和 textBox1,textBox1 用于存放传过来的加密路径。
panel 主要实现文件的拖放和文件的加密功能。
当一个文件拖到 panel中 时 , 会 弹 出 一 个 要 求 输 入 密 码 的 对 话 框 。
把 输 入 的 密 码 传 回 到 Form1 的panel1_dragDrop 中,实现拖放功能.此标签包含有 4 个 panel(此处只实现一个)和textBox1,textBox1 用于存放传过来的加密路径。
panel 主要实现文件的拖放和文件的加密功能。
当一个文件拖到 panel 中时,会弹出一个要求输入密码的对话框。
把输入的密码传回到 Form1 的 panel1_dragDrop 中。
(2)“解密”标签的设计此界面中有一个panel和一个textbox2 textbox2用于存放传过来的加密路径,panel用于实现文件的拖放和解密功能,当一个文件拖到panel中时,会弹出一个输入密码对话框。
把输入的密码传回到Form1的panel5_dragDrop中。
(3)“设置”标签的设计此界面主要有两个部分组成:加密文件存储路径和解密文件存储路径,由 groupbox1、groupbox2、组成。
在 groupbox11 中有两个单选按钮 radiobutton1 和 radiobutton2, 、分别命名为“与加密文件相同目录” “指定存储路径” ,一个文本框 textbox3 和一个 button1,textbox3 用于存放指定的加密路径,button1 实现文件的路径的选择。
在代码设计部分,要首先让 radiobutton1 在程序运行时自动获得焦点,在 radiobutton1获得焦点时,radiobtuuon2 将会失去焦点,同时 textbox3 和 button1 的状态为不可见状态。
要实现这些功能就要把 radiobutton1 和 radiobutton2 同时放到一个函数中按照以上的步骤就可以实现选择指定的加密路径, 在 但路径只会传给 textBox3, button2中添加如下代码,使 textBox3 中存放的路径值传给 textBox1,并将 textBox3 的值设置为空。
解密部分的实现过程跟加密大致相同,这里不给予详细说明。
2. 加密密钥界面设计加密密钥界面Form2里由两个标签:label1、label2,分别命名为输入密码、确认密码;两个文本框:textBox1、textBox2,用于用户输入密码(密码以的形式显示出来);两个按键:button1、button2(分别为确认、取消)。
在Form2开始设一个全局变量mm1当单击确定按钮时对textBox1和textBox2中的内容进行判断,如果两个文本框中输入的值相同,则把textBox2中的值赋给mm1 提示“加密成功”,并关闭此Form2。
如果textBox1与textBox2中的值不同则提示“密码不同,请重新输入!”,并把textBox1与textBox2中的值清空,以便用户重新输入密码。
button2 的作用是关闭当前对话框不做任何操作,命令为:this.Close。
这样加密密钥窗口窗口就设计好了。
3. 解密密钥界面设计解密密钥界面的设计与加密密钥界面的设计过程都是一样的,同样 Form3 由两个标签:label1 、 label2 , 分 别 命 名 为 输 入 密 码 、 确 认 密 码 ; 两 个 文 本 框 : textBox1 、 5 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)textBox2,用于用户输入密码(密码以的形式显示出来);两个按键:button1、button2(分别为确认、取消)。
在 Form2 开始设一个全局变量 mm2当单击确定按钮时对 textBox1 和 textBox2 中的内容进行判断,如果两个文本框中输入的值相同,则把textBox2 中的值赋给 mm2提示“解密成功”,并关闭此 Form2。
如果 textBox1 与textBox2 中的值不同则提示“密码不同,请重新输入!”,并把 textBox1 与 textBox2中的值清空,以便用户重新输入密码。
button2 的作用是关闭当前对话框不做任何操作,命令为:this.Close。
2.4 程序实现2.4.1
源码分析import
java.awt.import
java.awt.event.import
java.io.Fileimport
java.io.FileInputStreamimport
java.io.FileNotFoundExceptionimport
java.io.FileOutputStreamimport
java.io.IOExceptionimport javax.swing.JFileChooserimport javax.swing.JOptionPaneimport javax.swing.JScrollPaneimport javax.swing.JTextAreapublic class encrypt extends Frame implements ActionListener private MenuBar menubar private Menu menu1 menu2menu3 menu4 private MenuItem menuitem1menuitem1_1 menuitem2menuitem2_2menuitem3menuitem22menuitem22_2menuitem4 private static JTextArea txtarea private MenuShortcut ms1 ms2 ms3 ms4File f encrypt superquot本程序:加密解密程序quot txtarea new JTextArea menubar new MenuBar menu1 new Menuquot文件quot menuitem1 new MenuItemquot打开quot menuitem1_1 new MenuItemquot保存quot ms1 new MenuShortcutKeyEvent.VK_N menuitem1.addActionListenerthis menuitem1_1.addActionListenerthis menu1.addmenuitem1 menu1.addmenuitem1_1 menu2 new Menuquot保护quot menuitem2 new MenuItemquot二进制加密quot 6 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) menuitem2_2 new MenuItemquot二进制解密quot menuitem22 new MenuItemquot十六进制加密quot menuitem22_2 new MenuItemquot十六进制解密quot menuitem2.addActionListenerthis ms2 new MenuShortcutKeyEvent.VK_A menuitem2_2.addActionListenerthis menu2.addmenuitem2 menu2.addmenuitem2_2 menu2.addmenuitem22 menu2.addmenuitem22_2 menu3 new Menuquot编辑quot menuitem3 new MenuItemquot清空quot menu3.addmenuitem3 menuitem3.addActionListenerthis menuitem22.addActionListenerthis menuitem22_2.addActionListenerthis menu4 new Menuquot帮助quot menuitem4 new MenuItemquot关于quot ms4 new MenuShortcutKeyEvent.VK_H menuitem4.addActionListenerthis menu4.addmenuitem4 menubar.addmenu1 menubar.addmenu2 menubar.addmenu3 menubar.addmenu4 setMenuBarmenubar setLayoutnew BorderLayout addnew JScrollPanetxtarea BorderLayout.CENTER txtarea.setLineWraptrue addWindowListenernew WindowAdapter public void windowClosingWindowEvent e System.exit0 setSize900 600 setVisibletrue validatepublic void actionPerformedActionEvent e if e.getSource menuitem1 try file qu catchException ee 7 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) else if e.getSource menuitem1_1 try file shuchu catchException ee else if e.getSource menuitem2 txtarea.setTextfenencodetxtarea.getText else if e.getSource menuitem2_2 System.out.println1 String stringhetxtarea.getText ifstring.equalsquotquot txtarea.setTextdecodestring else if e.getSource menuitem22 txtarea.setTextencodetxtarea.getText else if e.getSource menuitem22_2 ifdecodetxtarea.getText.equalsquotquot txtarea.setTextdecodetxtarea.getText else if e.getSour.