加密解密课程设计.doc
《加密解密课程设计.doc》由会员分享,可在线阅读,更多相关《加密解密课程设计.doc(17页珍藏版)》请在装配图网上搜索。
兰州商学院陇桥学院 工学系课程设计报告 课 程 名 称 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 所示 开始 弹出文件加密器对话框 点击 文件 菜单下的 打开 获得文件 对显示在浏览窗口的 文件 加密 生成加密文件 点击 保存 选择路径 生成新文件 并以 txt 命 名 点击 文件 菜单下的 打开 获得加密后的 文件 对显示在浏览窗口的 文件 解密 生成解密文件 结束 图 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 a length 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 a length 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 写入字符流 BufferedWriter out new BufferedWriter tofile out write texta getText 0 texta getText length out close tofile close catch IOException e2 五 文件选择模块 分析 同上个文件保存模块类似 依旧在选择菜单项 打开 后 查 找读入文件 读取字符流 弹出 打开对话框 从而可实现获取文件 出口值 被选文件的路径 代码如下 public void actionPerformed ActionEvent e 查找读入文件 if e getSource itemOpen filedialog load setVisible true texta setText null String s if filedialog load getFile null try File file new File filedialog load getDirectory filedialog load getFile FileReader file reader new FileReader file 读取字符流 BufferedReader in new BufferedReader file reader while s in readLine null texta append s n in close file reader close catch IOException e1 四 系统测试 一 测试加密 首先在我机器 C 盘文件夹名为 1 的文件夹离创建一个名为 Example txt 文本文件用做测试 如图 2 所示 图 2 加密运行程序 二 测试选择加密文件 点击 文件 选择 打开 即弹出 打开 对话框 选择一 个文本文件 如图 3 所示 图 3 选择加密文件 三 测试生成加密文件 选择文件后 即可在 文件浏览窗口 中显示文本的信息 点 击 加密 按钮 即可在 文件浏览窗口 看到加密后的文件 如图 4 所示 图 4 生成加密文件 四 测试浏览加密文件 对加密后的密文进行保存 选择 文件 下的 保存 即可弹 出 保存 对话框 选择路径 即可保存 如图 5 6 所示 图 5 加密文件测试 图 6 浏览加密文件测试 五 测试解密文件 解密操作中对文件选择 密码输入和加密操作是一样的 将刚刚加 密的程序进行解密 打开密文文件 选择 加密与解密 窗口下 解密 按钮 点击 即可解密 如图 7 所示 图 7 解密文件 五 总结 Java 语言具有简单 安全 可移植 面向对象 健壮 多线程 体系 结构中立 解释执行 高性能 分布式和动态等主要特点 而且 我觉得 随着科技的不断进步 Java 语言的优越性会不断地被挖掘出来 因为 Java 语言也是有生命的 它是不断被人们的需求演变的越来越强大 这些 我觉得不言而喻 但往后 我想只有在不断的使用以后才能体会到 在发 现 Java 拥有秘密密钥工厂后更是感受到它的强大 Java 的 JDK 帮助文档 对于使用 Java 编程是非常有帮助的 在我们编程过程中 遇到的一些不 清楚的地方 都是靠它才得以解决 同时对 Java 语言的了解也更方便 深入了 程序利用 Java 图形界面设计了一个方便用户操作的窗口 使得程序 运行的时候更想是个封装好的运用程序 不过我知道离这个还是有很大距 离的 而程序所要提升空间非常大 现在界面所能实现的也就几个操作而 已 但我们一致认为 如果程序要再做的强大点 可以引入其他的加密算 法共用户选择 还可以设计成同时对多个文件进行加密 不过这只能放到 我们课下对此进行更深一步的研究了 程序的每个模块实现的功能还算完整 层次间的调用还是比较清晰的 各个功能也得到了基本的实现 算法的时空分析 其实就是指算法的空间复杂度 包括时间复杂度和 空间复杂度 其 作 用 时 间 复 杂 度 是 度 量 算 法 执 行 的 时 间 长 短 而 空 间 复 杂 度 是 度 量 算 法 所 需 存 储 空 间 的 大 小 这次课程设计的要求并不多 只要实现加密与解密功能 而且只需要 采用一种加密算法 但是为了本次课程设计 我们组也搜索了大量的资料 并根据在课堂上 书本上 老师讲过的知识 结合自身主观和客观因素 制定了本次课程设计的目标 并齐心协力 完成了此次设计 通过本次的课程设计 我们还知道了许多自身存在的不足 例如仅掌 握了一种加密算法 但在日益发达的社会商业等领域 加密解密需要做的 还非常多 并且 Java 领域博大精深 我们现在只是学到了它的一点皮毛 而已 所以还需多多努力 但是通过这些我还是学到了很多东西 先不说其他的 我最起码最基 础的加密算法 而且以后可以运用到自己想要保密的文件当中去 通过这次课程设计 我用 JAVA 语言实现 我这是我对 JAVA 语言有了 根深的了解巩固了以前学到的知识 也学习到了新的知识 课程设计虽然 暂告一个段落 但我们学习 Java 的步伐不会终止 六 附件 代码 部分图表 源代码 import java awt import java awt event import java io import javax swing 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 创建对话框 super s texta new TextArea 38 160 button1 new Button 加密 button2 new Button 解密 menu new Menu 文件 itemOpen new MenuItem 打开 itemSave new MenuItem 保存 label new Label 文件浏览窗口 itemOpen addActionListener this itemSave addActionListener this button1 addActionListener this button2 addActionListener this filedialog save new FileDialog this 保存文件对话框 FileDialog SAVE filedialog load new FileDialog this 打开文件对话框 FileDialog LOAD filedialog save addWindowListener new WindowAdapter public void windowClosing WindowEvent e filedialog save setVisible false filedialog load addWindowListener new WindowAdapter public void windowClosing WindowEvent e filedialog load setVisible false Box box1 Box createHorizontalBox 创建一个从左到右显示其组件的 box1 Box box2 Box createVerticalBox 创建一个从上到下显示其组件的 box2 Box box3 Box createVerticalBox Box boxbase Box createVerticalBox Panel panel1 new Panel Panel panel2 new Panel setMenuBar bar new MenuBar bar add menu menu add itemOpen menu add itemSave panel1 add button1 panel1 add button2 box1 add panel1 box2 add label panel2 add texta box3 add panel2 boxbase add box1 boxbase add box2 boxbase add box3 add boxbase setLayout new FlowLayout setBounds 100 0 1200 750 setVisible true addWindowListener new WindowAdapter public void windowClosing WindowEvent e System exit 0 关闭 窗口事件 public void actionPerformed ActionEvent e 查找读入文件 if e getSource itemOpen filedialog load setVisible true texta setText null String s if filedialog load getFile null try File file new File filedialog load getDirectory filedialog load getFile FileReader file reader new FileReader file 读取字符流 BufferedReader in new BufferedReader file reader while s in readLine null texta append s n in close file reader close catch IOException e1 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 读取字符流 BufferedWriter out new BufferedWriter tofile out write texta getText 0 texta getText length out close tofile close catch IOException e2 if e getSource button1 char a texta getText toCharArray 把 texta 中获得的文本 进行初 始化 与原字符串长度相等 并将该字符串对象的全部字符复制到该数组 a 中 texta setText null int n char secret for int i 0 i a length 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 a length i char c char secret a i 再次异或运算 即还原 texta append c public class E1 public static void main String args Myframe frame new Myframe 加密与解密- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 加密 解密 课程设计
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文