网站大量收购闲置独家精品文档,联系QQ:2885784924

文件加密与解密—Java课程设计报告(1).doc

文件加密与解密—Java课程设计报告(1).doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

JAVA课程设计

题目:文件的加密与解密

姓名:

学号:

班级:

日期:

指导老师

分数

目录

一、设计思路 3

二、具体实现 3

三、运行调试与分析讨论 8

四、设计体会与小结 11

五、参考文献 12

六、附录 12

一、设计思路

自从Java技术出现以业,有关Java平台的安全性用由Java技术发展所引发的安全性问题,引起了越来越多的关注。目前,Java已经大量应用于各个领域,研究Java的安全性对于更好地利用Java具有深远的意义。使用Java的安全机制设计和实现安全系

统更具有重要的应用价值。

本课程设计,主要实践Java安全中的JCE模块,包括密钥生成,Cipher对象初始

化、加密模式、填充模式、底层算法参数传递,也涉及文件读写与对象输入输出流。

二、具体实现

本系统通过用户界面接收三个参数:明文文件、密文文件、口令。采用DES加密算法,密码分组链(CipherBlockChaining,CBC)加密模式,PKCS#5-Padding的分组填充算法。因为CBC涉及到底层算法参数的解密密钥的传递,所以将明文文件中的字节块以密封对象 (SealedObject)的方式加密后,用对象流输出到密文文件,这样就将密文、算法参数、解密密钥三都密封到一个对象中了。口令的hash值作为产生密钥的参数。设计流程图如下所

示:

设计文件加密解密的界面

设计文件加密解密的界面

实现hash算法,用于产生口令的hash值

实现由口令hash值产生密钥的算法

实现文件解密算法

解密按钮事件

实现文件加密算法

加密按钮事件

文件加密与解密设计流程图

本系统中,包含Default,Shares,SecretKey,EncAndDec四个包共6个类组成。定义的几个参数:MAX_BUF_SIZE为每次从文件中读取的字节数,也是内存缓冲区的大小;加密算法为DES;加密模式是密码分组链(CBC)模式;分组填充方式是PKCS#5Padding。包和类

结构图如下所示:

本课程设计,包和类结构图:

PackageDefault-ClassJCEDialog//文件加密解密窗口类

PackageShares-ClassHashDigest、Classbyte2hex//密码Hash值生成类、二进制转字符串类

PackageSecretKey-ClassGenerateKey//由密码Hash值生成秘密密钥类

PackageEncAndDec-ClassDec、ClassEnc//文件加密、解密类

以下为包中的类的方法实现说明

PackageShares类结构图

PackageShares

publicclassHashDigest

密码Hash值生成方类,使用默认构造方法。

public

StrPassword)

byte[]HashDigest(String

密码Hash值生成方法

MessageDigest对象生成,使用类的

getInstance(StringDigestAlgorithm)方法。

1)输入产生摘要的原始数据,使用报文摘要

对象MesDigest的update方法,接收byte[]类型的输入,因此需要交String类型预先

转化为byte[]类型。

2)报文摘要的产生可以直接调用报文摘要对象MesDigest的digest方法,也可以将输入的byte[]类型作为参数而省去update

方法调用。

publicclassbyte2hex

二进制转字符串类

publicStringbyte2hex(byte[]b)

该方法接收byte[]类型的二进制数据。将二进

制数据转为字符串,以便于观察和对比,便

于调试程序。

PackageSecretKey类结构图

PackageSecretKey

publicclassGenerateKey

由密码Hash值生成秘密密钥类,使用默认构

造方法。

PublicSecretKeyGenerateKey(byte[]

KeyData)

由密码Hash值生成秘密密钥方法(由

hashDigest算法产生byte[]类型的hash值,再

由此hash值生成对称密钥的算法)

算法中用到了两个重要的类

1)DESKeySpec

文档评论(0)

zhanghaoyu888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档