加密解密软件的设计与实现

上传人:夏** 文档编号:499213063 上传时间:2023-05-22 格式:DOC 页数:20 大小:258.50KB
返回 下载 相关 举报
加密解密软件的设计与实现_第1页
第1页 / 共20页
加密解密软件的设计与实现_第2页
第2页 / 共20页
加密解密软件的设计与实现_第3页
第3页 / 共20页
加密解密软件的设计与实现_第4页
第4页 / 共20页
加密解密软件的设计与实现_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《加密解密软件的设计与实现》由会员分享,可在线阅读,更多相关《加密解密软件的设计与实现(20页珍藏版)》请在金锄头文库上搜索。

1、课程设计任务书20102011学年第二学期专业: 计算机科学与技术 学号: 080101010 姓名: 刘海坤 课程设计名称:计算机网络课程设计 设计题目: 加密解密软件的设计与实现 完成期限:自 2011 年 6 月 21 日至 2011 年 6 月 26 日共 1 周 设计目的: 本程序设计所采用的就是DES算法,同时利用Java的GUI编程,生成文本对话框,对文件的路径进行选择、提供密钥框、加密和解密按钮。 功能要求:根据DES算法,设计加密解密软件来为各种文件加密解密。 一、 设计的任务:根据设计整体需求,本人负责窗体的设计与实现和目标文件的导入模块。 二、 进度安排: 序号阶段内容所

2、需时间1布置任务及调研2天2系统分析与设计2天3调试及报告撰写3天合 计7天三、 主要参考资料: 1 谢希仁.计算机网络教程.北京: 人民邮电出版社,2006. 2 耿祥义.Java2使用教程: 清华大学出版社,2006. 3 方敏,张彤.网络应用程序设计.西安:电子科技大学出版社,2005. 4 黄超.Windows下的网络编程.北京:人民邮电出版社,2003. 指导教师(签字): 教研室主任(签字): 批准日期: 年 月 日 摘 要随着计算机的应用和网络技术的不断发展,网络间的通讯量不断的加大,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。文件

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

4、要特点。利用Java语言中秘密密钥工厂对DES算法的支持,使程序实现文件加密、解密两大功能更简单。本程序设计所采用的就是DES算法。同时利用Java的GUI编程,生成文本对话框,对文件的路径进行选择、提供密钥框、加密和解密按钮。使用本程序可以对txt,word等多种文件进行加密解密,使用便捷实用,功能完善,满足了用户对文件安全性的需求。 关键词:JAVA , DES, 加密, 解密。目 录一、题目分析11.1课程设计的要求和内容11.2 DES算法描述1二、概要设计32.1抽象数据类型的定义32.1.1 程序所需要引入的包32.1.2 其他定义32.2主程序流程图42.3各程序模块之间的层次(

5、调用)关系4三、详细设计63.1 窗体的设计与实现63.2文件导入模块7四、测试分析与结果84.1. 测试结果84.1.1运行程序84.1.2加密84.1.3解密10总 结12参考文献13附 录14 第 I 页 课程设计说明书(论文)用纸 第2页 共19页一、题目分析1.1课程设计的要求和内容基本要求:1.利用某种加密算法对指定的文本文件进行加密(应判断其是否已经加密,若已加密则结束该步骤,否则提示输入加密口令,对文件进行加密);2.加密解密方法:本设计采用DES加密算法。3.还应该提供解密功能。1.2 DES算法描述 DES ( data encryption Standard) 是一种世界

6、标准的加密形式,已经15 年历史了,虽然有些老,可还算是比较可靠的算法。在七十的初期, 随着计算机之间的通信发展, 需要有一种标准密码算法为了限制不同算法的激增使它们之间不能互相对话。为解决这个问题, 美国国家安全局(N.S.A ) 进行招标。 I.B.M 公司开发了一种算法, 称为:Lucifer。 经过几年的研讨和修改, 这种算法, 成为了今天的D.E.S,1976 年11月23 日, 终于被美国国家安全局采用。DES是一种分组加密算法,他以64位为分组对数据加密。64位一组的明文从算法的一端 输入,64位的密文从另一端输出。DES是一个对称算法:加密和解密用的是同一个算法(除密钥编排不同

7、以外)。 密钥的长度为56位(密钥通常表示为64位的数,但每个第8位都用作奇偶检验,可以忽 略)。密钥可以是任意的56位数,且可以在任意的时候改变。DES算法的入口参数有3个:Key,Data,Mode。其中Key为8个字节共64位,是DES算法 的工作密钥;Data也为8个字节64位,是要被加密或解密的数据:Mode为DES的工作方式,有两种:加密或解密。 DES算法的工作过程:若Mode为加密,则用Key对数据Data进行加密,生成Data的密码 形式(64位)作为DES的输出结果;若Mode为解密,则用Key对密码形式的数据Data解密,还 原为Data的明码形式(64位)作为DES的输

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

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

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

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

12、的设计与实现窗体的总体布局包含按钮、画布、文本框、标签等,合理分布达到视觉的美感。代码实现:import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;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 = getContentPane(); JPanel jp1 = new JPanel(); jl1 = new JLabel(输入路径); lujin = new JTextField(15); xuanz = new JButton(选择); jp1.add(jl1); jp1.add(lujin); jp1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号