没有合适的资源?快使用搜索试试~ 我知道了~
Java课程设计_加密和解密_报告.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 111 浏览量
2022-06-10
17:25:11
上传
评论 1
收藏 962KB DOC 举报
温馨提示
试读
23页
Java课程设计_加密和解密_报告
资源推荐
资源详情
资源评论
课程设计说明书用纸
目 录:
一、题目分析................................................................................................. .... ....1
二、概要设计................................................................................................. .... ....3
三、详细设计................................................................................................. .... ....5
四、调试分析........................................................................................... .... .... ....11
五、测试结果........................................................................................... .... .... ....13
六、主要参考资料................................................................................................16
七、附录...............................................................................................................16
前 言
随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务
等方面都需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由
加密算法实现,加密算法有多种,常见的有 RSA、DES、MD5 等。但是这些
算法虽然原理简单,但具体实现起来却非常繁琐复杂,故而本程序设计对文件
的加密使用的是最基础的异或加密算法。
Java 语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构
中立、解释执行、高性能、分布式和动态等主要特点。Java 是一门很优秀的编
程语言,是目前软件设计中极为健壮的编程语言。Java 不仅可以用来开发大型
的应用程序,而且特别适合于 Internet 的应用开发。Java 确实具备了“一次写
成,处处运行”的特点,所以,Java 已经成为网络时代最重要的编程语言之一。
本程序充分利用 Java 语言的特点,针对当下社会比较重视的文件加密,设计了
本程序。
使用本程序可以对 txt,word 等多种文件进行加密解密,使用便捷实用,功
能完善,
满足了用户对文件安全性的需求。
课程设计说明书用纸
关键词:
JAVA ; 加密; 解密;
一、题目分析
1.1 课程设计的要求和内容(包括原始数据、技术要求、工作要
求)
基本要求:
1.用图形用户界面实现,建立菜单。
2. 给定任意一个文本文件,进行加密,生成另一个文件。
3.对加密后的文件还原。
1.2 团队任务分析
分析如下:
1.向图形用户界面中添加组件。
2.设置各个组件的布局。
3.添加窗口事件。
4. 查找读入及写入文件,并显示。
1
课程设计说明书用纸
5.加密功能实现。
6.解密功能实现。
其中:团队成员及其负责的任务如下:
冯治波:图形用户界面
吴祎筱和陈冬姣:文本加密
高峻辉:文本的还原(解密)
1.3 相关知识介绍
本程序采用传统的异或加密算法,没有采用 DES 算法,但对于世界上公认
的 DES 是一种分组加密算法,是以 64 位为分组对数据加密。64 位一组的明文
从算法的一端 输入,64 位的密文从另一端输出。密钥的长度为 56 位(密钥通
常表示为 64 位的数,但每个第 8 位都用作奇偶检验,可以忽 略)。密钥可以是
任意的 56 位数,且可以在任意的时候改变。 本程序采用的算法与 DES 相同的
一点是:都是一个对称算法:及加密和解密用的是同一个算法。
我们也许知道公认的 DES 算法的工作过程,那就是:若 Mode 为加密,则
用 Key 对数据 Data 进行加密,生成 Data 的密码 形式(64 位)作为 DES 的
输出结果;若 Mode 为解密,则用 Key 对密码形式的数据 Data 解密,还 原为
Data 的明码形式(64 位)作为 DES 的输出结果。但是,重要的是本程序首先
经“打开”菜单项,进入文件选择模块,读取字符流,输出文本文档后,在一个
数组中,对字符进行异或运算,从而达到加密的效果。
在通信网络的两端,双方约定了一致的 Key,在通信的源点用 Key 对核心
数据进行 DES 加密 ,然后以密码形式通过公共通信网(如电话网)传输到通
信网络的终点,数据达到目的 地后,用同样的 Key 对密码数据进行解密,便再
现了明码形式的核心数据。这样便保证了核 心数据(如 PIN,MAC 等)在公共
通信网中传输的安全性和可靠性。通过定期在通信网络的源 端和目的端同时改
用新的 Key,便能更进一步提高数据的保密性,这正是现在金融界交易网 络的
流行作法。
简单地说,DES 算法只不过是加密的其中一种技术,通过一个初始置换,
将明文分组分成左半部分和右半部分,各 32 位 长。然后进行 16 轮相同的运算,
2
课程设计说明书用纸
这些相同的运算被称为函数 f,在运算过程中数据和密 钥相结合。经过 16 轮运
算后左、右部分在一起经过一个置换(初始置换的逆置换),这样算 法就完成
了。 本程序虽然没有采用此算法,而是采用众所周知的与 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 FlowLayout() 对文件加密器对话框采用 FlowLayout 管理器。
new ActionListener() 对文件的加密和解密设置事件监听器。
2.2 各程序模块之间的层次(调用)关系
2.2.1 模块定义
3
课程设计说明书用纸
图形用户界面模块:
添加各种所需组件,设置窗口事件。
加密操作模块:
根据选择的文本文件,在浏览窗口中显示后,进行加密,显示在“文本浏览
窗口”中。
解密操作模块:
同加密模块一样,由密文的保存路径,打开,进行解密,显示在“文本浏览
窗口”中。
文件选择模块:
选择需要加密或解密的文件。
文件保存模块:
选择保存路径,保存需要加密或解密的文件。
2.2.2 层次(调用)关系
根据以上各程序模块的定义,可以大致画出各模块的层次调用关系,由文
件加密器模块开始调用,直到解密模块调用为止。如下图 2-2-2 所示。
图 2-2-2 层次(调用)关系
文件加密器模块
文件选择模块
加密操作模块
文件保存模块
解密操作模块
4
剩余22页未读,继续阅读
资源评论
- m0_656579302024-01-17资源内容总结的很到位,内容详实,很受用,学到了~
omyligaga
- 粉丝: 54
- 资源: 2万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功