没有合适的资源?快使用搜索试试~ 我知道了~
首页基于JAVA的文件加密程序设计
资源详情
资源推荐
课程名称: 程序设计课程设计试验
题 目: 文件加密程序
目 录
摘要…………………………………………………………………………………
关键词………………………………………………………………………………
前言…………………………………………………………………………………
一 题目分析………………………………………………………………………
课程设计的要求和内容(包括原始数据、技术要求、工作要求)……………
相关知识介绍 ………………………………………………………………………
算法描述……………………………………………………………………
算法详述……………………………………………………………………
二 概要设计………………………………………………………………………
抽象数据类型的定义………………………………………………………………
程序所需要引入的包…………………………………………………………
其他定义………………………………………………………………………
主程序的流程 ………………………………………………………………………
各程序模块之间的层次调用关系…………………………………………………
模块定义 ………………………………………………………………………
层次调用关系…………………………………………………………………
三 详细设计 ………………………………………………………………………
主函数模块 ……………………………………………………………………………
加密模块 ………………………………………………………………………………
加密操作模块 …………………………………………………………………………
解密模块 ……………………………………………………………………………
解密操作模块 ………………………………………………………………………
转换模块 ……………………………………………………………………………
转换模块一 ……………………………………………………………………
转换模块二 ……………………………………………………………………
文件选择模块 ………………………………………………………………………
密码生成模块 ………………………………………………………………………
四 调试分析 ………………………………………………………………………
调试过程中遇到的问题 ………………………………………………………………
对设计与实现的回顾讨论和分析 …………………………………………………… 18
算法的时空分析
经验和体会 ……………………………………………………………………………
五 测试结果 ………………………………………………………………………
加密 ……………………………………………………………………………………
解密 ……………………………………………………………………………………
六 主要参考资料 …………………………………………………………………
七 附录 ……………………………………………………………………………
摘 要
随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务等方面都
需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密
算法有多种,常见的有RSA、DES、MD5等。本程序设计对文件的加密使用的是D
ES加密算法。
语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释
执行、高性能、分布式和动态等主要特点。利用 语言中秘密密钥工厂对DES算法的
支持,使程序实现文件加密、解密两大功能更简单。
关键词:
; ; 加密; 解密;
前 言
是一种世界标准的加密形式, 已经 年历史
了,虽然有些老, 可还算是比较可靠的算法。在七十的初期!随着计算机之间的通信发展,
需要有一种标准密码算法为了限制不同算法的激增使它们之间不能互相对话。为解决这个
问题!美国国家安全局"进行招标。 #$%公司开发了一种算法, 称为:&'(。
经过几年的研讨和修改!这种算法!成为了今天的 ,年 月 日, 终于被
美国国家安全局采用。
是分块加密的,将明文分割成 $#)的块!然后它们一个个接起来 。它使用
位密钥对 位的数据块进行加密,并对 *+ 的数据块进行 轮编码。与每轮编码
时,一个 *+ 的“每轮”密钥值由 *+ 的完整密钥得出来。 用软件进行解码需要
用很长时间,而用硬件解码速度非常快, 年,人们估计要耗资两千万美元才能建成
1
一个专门计算机用于 的解密,而且需要 个小时的破解才能得到结果。所以,当时
被认为是一种十分强壮的加密方法。但今天, 只需 二十万美圆就可以制造一台破译
的特殊的计算机,所以现在 对要求“强壮”加密的场合已经不再适用了。
的唯一密码学缺点,就是密钥长度相对比较短,人们并没有放弃使用 ,而是
想出了一个解决其长度问题的方法,即采用三重 。加密成为三步, 而不是一步,每一
步的密钥都不一样, 这样爆破就比较复杂了,这样要找三个密钥, 而不是一个, 每个密
钥有 $#), 那样我们就有 乘以三, 等于 $+。
本程序设计所采用的就是 的变种——三重 算法。同时利用 的 ,-# 编
程,生成文本对话框,对文件的路径进行选择、提供密钥框、加密和解密按钮。
一、题目分析
1.1 课程设计的要求和内容(包括原始数据、技术要求、工作要求)
基本要求:
利用某种加密算法对指定的文本文件进行加密(应判断其是否已经加密,若已加
密则结束该步骤,否则提示输入加密口令,对文件进行加密);
加密解密方法:可使用 .!!% 等之一加密算法。
. 还应该提供解密功能。
1.2 相关知识介绍
1.2.1 DES 算法描述
是一种分组加密算法,他以 位为分组对数据加密。 位一组的明文从算法的
一端 输入, 位的密文从另一端输出。 是一个对称算法:加密和解密用的是同一个
算法(除 密钥编排不同以外)。
密钥的长度为 位密钥通常表示为 位的数,但每个第 位都用作奇偶检验,可
以忽 略。密钥可以是任意的 位数,且可以在任意的时候改变。
算法的入口参数有 个:/,,% 。其中 / 为 个字节共 位,
是 算法 的工作密钥; 也为 个字节 位,是要被加密或解密的数据:%
为 的工作方式,有 两种:加密或解密。
算法的工作过程:若 % 为加密,则用 / 对数据 进行加密,生成
的密码 形式( 位)作为 的输出结果;若 % 为解密,则用 / 对密码形
式的数据 解密,还 原为 的明码形式( 位)作为 的输出结果。
在通信网络的两端,双方约定了一致的 /,在通信的源点用 / 对核心数据进行
加密 ,然后以密码形式通过公共通信网(如电话网)传输到通信网络的终点,数据达
到目的 地后,用同样的 / 对密码数据进行解密,便再现了明码形式的核心数据。这样便
保证了核 心数据(如 0#",%1 等)在公共通信网中传输的安全性和可靠性。通过定期在
通信网络的源 端和目的端同时改用新的 /,便能更进一步提高数据的保密性,这正是现
在金融界交易网 络的流行作法。
2
简单地说,算法只不过是加密的一种基本技术, 基本组建分组是这些技术的一种
组合 ,他基于密钥作用于明文,这是众所周知的轮( ')。 有 轮,这意味
着要在明文分 组上 次实施相同的组合技术。
1.2.2 DES 算法详述
DES 算法把 64 位的明文输入块变为 64 位的密文输出块,他所使用的密钥也是 64 位
DES 对 64 位的明文分组进行操作。通过一个初始置换,将明文分组分成左半部分和右半部
分,各 32 位 长。然后进行 16 轮相同的运算,这些相同的运算被称为函数 f,在运算过程
中数据和密 钥相结合。经过 16 轮运算后左、右部分在一起经过一个置换(初始置换的逆
置换),这样算 法就完成了。
(1)初始置换
其功能是把输入的 64 位数据块按位重新组合,并把输出分为 L0,R0 两部分,每部分
各长 32 位,其置换规则如表 1 所示。
表 1
58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
即将输入的第 位换到第 位,第 位换到第 位,…,依次类推,最后一位是原来的
第 位,&,. 则是换位输出后的两部分,& 是输出的左 位,. 是右 位。例:
设置换前 的输入值为 2,则经过初始置换后的结果为:&32
;.32。
()逆置换
经过 次迭代运算后,得到 &,.,将此作为输入进行逆置换,即得到密文输
出。 逆置换正好是初始置换的逆运算。例如,第 位经过初始置换后,处于第 位,而
通过逆置换,又将第 位换回到第 位,其逆置换的规则如表 所示。
表 2
40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
()函数 (.
!/
的计算 其算法描述如图 所示。
3
L
i-1
R
i-1
密钥
扩 展 置
换
S 盒 置
换
L
i
R
i
移位
移位
S 盒置
换
图
在图 中,“扩展置换”是将 位放大成 位,“0 盒置换”是 位到 位换位,其
换位 规则分别如表 、表 所示。
表 3 扩展置换表
32 1 2 3 4 5 4 5 6 7 8 9
8 9 10 11 12 13 12 13 14 15 16 17
16 17 18 19 20 21 20 21 22 23 24 25
24 25 26 27 28 29 28 29 30 31 32 1
表 4 P 盒置换表
16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9 19 13 30 6 22 21 4 25
在 f(Ri,Ki)算法描述图中,S1,S2...S8 为选择函数,其功能是把 6bit 数据变为 4bit 数据。
下面给出选择函数 Si(i=1,2......8)的功能表:
选择函数 Si
S1:
14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,
0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,
4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,
15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,
S2:
15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,
3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,
0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,
13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,
S3:
10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,
13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,
13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,
1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,
S4:
4
密钥
P 盒置换
剩余27页未读,继续阅读
kuhgknbj
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功