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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

加密解密件的设计与实现Word下载.docx

1、 清华大学出版社,2006. 3 方敏,张彤.网络应用程序设计.西安:电子科技大学出版社,2005. 4 黄超.Windows 下的网络编程.北京:人民邮电出版社,2003. 指导教师(签字): 教研室主任(签字): 批准日期:年月日摘要随着计算机的应用和网络技术的不断发展,网络间的通讯量不断的加大, 人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护, 文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密算法 有多种,常见的有 RSA、DES、MD5 等。本程序设计对文件的加密使用的是 DES 加密算法。DES 是分块加密的。DES 用软件进行解码需要用很长时间,而用

2、硬件解码速度非常快,1977 年,人们估计要耗资两千万美元才能建成一个专门计算机用于 DES 的解密,而且需要 12 个小时的破解才能得到结果。所以,当时 DES 被认为是一种十分强壮的加密方法。但今天, 只需 二十万美元就可以制造一台破译 DES 的特殊的计算机,所以现在DES对要求“强壮”加密的场合已经不再适用了。Java 语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。利用 Java 语言中秘密密钥工厂对 DES 算法的支持,使程序实现文件加密、解密两大功能更简单。本程序设计所采用的就是 DES 算法。同时利用 Java 的 G

3、UI 编程,生成文本对话框,对文件的路径进行选择、提供密钥框、加密和解密按钮。使用本程序可以对 txt,word 等多种文件进行加密解密,使用便捷实用, 功能完善,满足了用户对文件安全性的需求。关键词:JAVA , DES,加密,解密。第 I 页目 录一、题目分析11.1 课程设计的要求和内容11.2 DES 算法描述1二、概要设计32.1 抽象数据类型的定义32.1.1 程序所需要引入的包32.1.2 其他定义32.2 主程序流程图42.3 各程序模块之间的层次(调用)关系4三、详细设计63.1 窗体的设计与实现63.2 文件导入模块7四、测试分析与结果84.1. 测试结果84.1.1 运行

4、程序84.1.2 加密84.1.3 解密10总结12参考文献13附录14第 II 页课程设计说明书(论文)用纸一、题目分析1.1 课程设计的要求和内容基本要求:1. 利用某种加密算法对指定的文本文件进行加密(应判断其是否已经加密, 若已加密则结束该步骤,否则提示输入加密口令,对文件进行加密);2. 加密解密方法:本设计采用 DES 加密算法。3. 还应该提供解密功能。1.2 DES 算法描述DES ( data encryption Standard) 是一种世界标准的加密形式,已经 15 年历史了,虽然有些老,可还算是比较可靠的算法。在七十的初期, 随着计算机之间的通信发展, 需要有一种标准

5、密码算法为了限制不同算法的激增使它们之间不能互相对话。为解决这个问题, 美国国家安全局(N.S.A ) 进行招标。 I.B.M 公司开发了一种算法, 称为:Lucifer。 经过几年的研讨和修改, 这种算法, 成为了今天的 D.E.S,1976 年 11 月 23 日, 终于被美国国家安全局采用。DES 是一种分组加密算法,他以 64 位为分组对数据加密。64 位一组的明文从算法的一端 输入,64 位的密文从另一端输出。DES 是一个对称算法:加密和解密用的是同一个算法(除密钥编排不同以外)。密钥的长度为 56 位(密钥通常表示为 64 位的数,但每个第 8 位都用作奇偶检验,可以忽 略)。密

6、钥可以是任意的 56 位数,且可以在任意的时候改变。DES 算法的入口参数有 3 个:Key,Data,Mode。其中 Key 为 8 个字节共64 位,是 DES 算法 的工作密钥;Data 也为 8 个字节 64 位,是要被加密或解密的数据:Mode 为 DES 的工作方式,有两种:加密或解密。DES 算法的工作过程:若 Mode 为加密,则用 Key 对数据 Data 进行加密, 生成 Data 的密码形式(64 位)作为 DES 的输出结果;若 Mode 为解密,则用第 17 页 共 17 页Key 对密码形式的数据 Data 解密,还 原为 Data 的明码形式(64 位)作为 DE

7、S的输出结果。在通信网络的两端,双方约定了一致的 Key,在通信的源点用 Key 对核心数据进行 DES 加密 ,然后以密码形式通过公共通信网(如电话网)传输到通信网络的终点,数据达到目的 地后,用同样的 Key 对密码数据进行解密,便再现了明码形式的核心数据。这样便保证了核 心数据(如 PIN,MAC 等)在公共通信网中传输的安全性和可靠性。通过定期在通信网络的源端和目的端同时改用新的 Key,便能更进一步提高数据的保密性,这正是现在金融界交易网络的流行作法。随着计算机网络的发展,加密技术也在迅速的发展中,加密解密技术的实现主要靠性能好的加密算法,而 DES 就是在实践中被证明的很好的算法,

8、目前此算法已被广泛运用,且在使用中有了一些改进,DES 算法给网络文件带来了可靠的安全性保证。二、概要设计2.1 抽象数据类型的定义2.1.1 程序所需要引入的包import java.awt.*;/包含用于创建用户界面和绘制图形图像的所有类。import java.awt.event.*;/提供处理由 AWT 组件所激发的各类事件的接口和类。import javax.swing.*;/提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。import java.io.*;/通过数据流、序列化和文件系统提供系统输入和输出。2.1.2 其他定义new Bo

9、rderLayout()对文件加密器对话框采用 BorderLayout 管理器。new ActionListener()对文件的加密和解密设置事件监听器。new ButtonGroup()定义一个按钮组。new JRadioButton()将此按钮设置为属于一个按钮组的成员。new FileInputStream()建立文件输入流以便进行文件的读操作,取其数据new FileOutputStream()建立文件输出流以便将数据写入文件shu1用整形数据保存该密钥。开始运行程序输入文件路径选中文件写入或者输出弹出文件加密器对话框2.2 主程序流程图加密或解密若为取出则在文本区中输出要取出的内容

10、若为写入则在文本区中输入要写入的内容点击解密按钮, 输入密钥,解密点击加密按钮, 生成密钥(记住)完成图 2 主程序流程图2.3 各程序模块之间的层次(调用)关系模块定义(1) 主函数模块:生成加密器框体;获取数据的输入;调用加密或解密函数。(2) 加密模块:判断密钥是否合法和文件是否已加密,启动加密操作,显示操作结果,并在与源文件同一文件夹下生成密文。(3) 加密操作模块:用 DES 方法加密输入的字节并返回。(4) 解密模块:判断密钥是否合法,启动解密操作,显示操作结果,并在指定的文件路径下生成明文。(5) 解密操作模块:用 DES 方法解密输入的字节并返回。三、详细设计3.1 窗体的设计

11、与实现窗体的总体布局包含按钮、画布、文本框、标签等,合理分布达到视觉的美感。代码实现: import java.awt.event.*; import java.io.*;public class key 加密 extends JFrame int shu1;JLabel jl1,jl2;String cc;JButton queding, xuanz, jiami, jiemi; JTextField lujin,key;JTextArea nr;JRadioButton qu,xie;ButtonGroup fz;File f;public key 加密()Container c = ge

12、tContentPane(); JPanel jp1 = new JPanel();jl1 = new JLabel(输入路径); lujin = new JTextField(15); xuanz = new JButton(选择 jp1.add(jl1);jp1.add(lujin); jp1.add(xuanz);c.add(jp1, BorderLayout.NORTH); nr = new JTextArea();c.add(new JScrollPane(nr), BorderLayout.CENTER); qu = new JRadioButton(写入xie = new JRa

13、dioButton(取出, true);fz = new ButtonGroup(); fz.add(qu);fz.add(xie);jl2 = new JLabel(密钥 key = new JTextField(15);jiami = new JButton(加密 jiemi = new JButton(解密 JPanel jp4 = new JPanel();jp4.setLayout(new GridLayout(2, 1, 5, 5); JPanel jp2 = new JPanel();jp2.add(jl2);jp2.add(key); jp2.add(jiami); jp2.a

14、dd(jiemi); jp4.add(jp2);JPanel jp3 = new JPanel(); queding = new JButton(确定 jp3.add(qu);jp3.add(xie); jp3.add(queding); jp4.add(jp3);c.add(jp4, BorderLayout.SOUTH); queding.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) jian();if (qu.isSelected() shuchu();if (x

15、ie.isSelected() qu(););3.2 文件导入模块实现目标文件的导入,通过选择按钮导入加密或解密的文件。xuanz.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) JFileChooser fileChooser = new JFileChooser(); / 实例化文件选择器fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); / 设置文件选择模式,此处为文件和目录均可

16、if(fileChooser.showOpenDialog(key 加密.this)=JFileChooser.APPROVE_OPTION) / 弹出文件选择器,并判断是否点击了打开按钮String fileName=fileChooser.getSelectedFile().getAbsolutePath(); / 得到选择文件或目录的绝对路径lujin.setText(fileName););四、测试分析与结果4.1. 测试结果4.1.1 运行程序首先在我机器 E 盘文件夹名为 java1 的文件夹离创建一个名为 Example.doc文档用做测试。图 4-1-1 运行程序运行程序弹出如

17、图 4-1-1 对话框,然后进行文件选择4.1.2 加密图 4-1-2 选择加密文件根据需求,选择所要加密文件的路径,并打开选取文件图 4-1-3 选取文件,在文本区中写入要加密的内容并单击加密按钮图 4-1-4 该文件已被4.1.3 解密解密操作中对文件选择,密码输入和加密操作是一样的。图 4-1-5 选择要解密的文件图 4-1-6 输入密码进行文件解密图 4-1-7 点击解密按钮,得到明文总结在本次课程设计过程中,本人主要是负责窗体设计与实现和目标文件的导 入模块设计。通过本组三个人的分工协作,完成了课程设计。在完成设计期间, 我通过不断网上搜集和查找有关书集和相关加密算法的介绍,进行认真

18、而细致 的学习,进而完成了此次课程设计模块的完成。通过本次设计我们也较深入的 了解了 DES 这个加密算法的原理与作用。通过本次设计,我意识到了无论身在何处,团队的事情远远大于个人的事情。学会团队合作才是未来在工作中实现自身价值的必备条件。我想课程设计的目的,并不仅仅让我们能把任务完成吧。大概也有让我们积极合作,团结奋进的 意思吧。不管怎么说,我是在意识上还是在知识上都有了不小的提高。懂得了, 只有细心的做好每一个步骤,才能酝酿一个完美的结局。本次课程设计得到了韩芳老师的精心指导,在老师的指点下和小组成员的共同努力下,一一克服细节上的所有问题,并让它成为合格的设计。让本次任务顺顺利利的完成,在

19、此谢谢韩老师的教导。参考文献 人民邮电出版社,2006.2 耿祥义.Java2 使用教程: 清华大学出版社,2006.3 方敏,张彤.网络应用程序设计.西安:电子科技大学出版社,2005.4 黄超.Windows 下的网络编程.北京:人民邮电出版社,2003.附录程序实现 Java 源代码import java.awt.*;JLabel jl1, jl2; JTextField lujin, key;JRadioButton qu, xie; fz = new ButtonGroup();fz.add(qu); 密 钥 jiami = new JButton(jp2.add(jiemi); /

20、 实例化文件选择器fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);/ 设置文件选择模式,此处为文件和目录均可(key 加密.this) = JFileChooser.APPROVE_OPTION) / 弹出文件选择器,并判断是否点击了打开按钮jiemi.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) ObjectInputStream input;try input = new Ob

21、jectInputStream(new FileInputStream(lujin.getText(); int mima = Integer.parseInt(key.getText();AA ac = (AA) input.readObject(); if (ac.getShu() = mima) nr.setText(ac.cc);shuchu(); else nr.setText(错误的 key catch (Exception e) / e.printStackTrace();无法解密);jiami.addActionListener(new ActionListener() pub

22、lic void actionPerformed(ActionEvent event) AA a = new AA(nr.getText();key.setText(a.shu + try ObjectOutputStream output = new ObjectOutputStream( new FileOutputStream(lujin.getText();output.writeObject(a); output.flush(); output.close();qu();baocun();必须选择加密文件保存地址,文件不存在或者无法加密文件,加密文件不能含有换行setSize(380

23、, 350); setVisible(true);public void jian() f = new File(lujin.getText();f.createNewFile(); catch (IOException e) JOptionPane.showMessageDialog(null, 路径错误public void shuchu() try FileOutputStream out = new FileOutputStream(f); byte buf = nr.getText().getBytes();try out.write(buf); out.flush();out.close(); catch (IOException e) catch (FileNotFoundException e) public void qu() try FileInputStream in = ne

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2