收藏 分销(赏)

大学毕业论文-—文件加密及解密小型软件设计与实现.doc

上传人:天**** 文档编号:4824538 上传时间:2024-10-14 格式:DOC 页数:32 大小:498.50KB
下载 相关 举报
大学毕业论文-—文件加密及解密小型软件设计与实现.doc_第1页
第1页 / 共32页
大学毕业论文-—文件加密及解密小型软件设计与实现.doc_第2页
第2页 / 共32页
大学毕业论文-—文件加密及解密小型软件设计与实现.doc_第3页
第3页 / 共32页
大学毕业论文-—文件加密及解密小型软件设计与实现.doc_第4页
第4页 / 共32页
大学毕业论文-—文件加密及解密小型软件设计与实现.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、新疆大学本科毕业设计(论文)新疆大学毕业论文题 目: 文件加密及解密小型软件设计与实现摘 要随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。信息安全已经成为世界性的现实问题,信息安全问题已威胁到国家的政治、经济、军事、文化、意识形态等领域,同时,信息安全问题也是人们能否护自己的个人隐私的关键。信息安全是社会稳定安全的必要前提条件。信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计算机、通信、控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。信息对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和

2、促进相关学科的研究与发展。至今,密码技术是取得信息安全性最有效的一种方法,密码技术是信息安全的核心技术。本文是一篇讨论关于常用文件加密解密算法的毕业设计论文,它详细的讲述了文件加密解密算法实现的过程中所用到的方法、技术。对公钥密码体制和私钥密码体制进行了分析和研究,并对公钥密码体制和私钥密码体制的代表RSA算法和DES算法进行了研究和比较。关键词:解密;文件加密;密码体制;DES;RSAAbstractDesign and Implementation of Document tagging softwareAbstract: With the advent of the informatio

3、n society, people in the enjoyment of information resources brought about tremendous benefits, but also faced with a letter Income security, a severe test. Information security has become a worldwide reality, information security has been a threat to the countrys political Governance, economic, mili

4、tary, cultural, ideological and other areas at the same time, the issue of information security is also a possibility of retaining their own personal Privacy key. Information security and social stability is a necessary precondition for security.This article is a discussion paper on encryption and d

5、ecryption algorithms commonly used in graduate design thesis, which documents in detail about the encryption and decryption process of algorithm used in the methods and techniques. Of public-key cryptosystem private key cryptosystem and analysis and research, and public-key cryptosystem and on behal

6、f of private key cryptography algorithm RSA algorithm and DES have been studied and compared.Keywords: Decryption; file encryption; cryptosystem; DES; RSA目录摘 要2ABSTRACT3目录4第一章 绪论51.1论文背景及意义51.2本论文的主要方法和研究进展6第二章 DES介绍及需求分析92.1需求分析92.2常规密钥密码体制92.3分组加密解密算法-DES算法简介112.4DES加密流程图132.5DES算法详述14第三章 系统设计173.

7、1设计基本原理173.2界面设计173.1.1 加密解密界面设计173.1.2 加密密钥界面设计213.1.2 解密密钥界面设计223.2 实现代码设计233.2.1 DES的加密设计233.2.2 DES解密设计25第四章 设计结果及分析264.1 设计结果展示264.2 设计结果分析及说明29第五章 总结30参考文献31致谢32第一章 绪论1.1 论文背景及意义信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计算机、通信、控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。信息对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和促进相关

8、学科的研究与发展。至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的核心技术。随着网络的发展,网络安全已成为信息化社会的一个焦点问题,因此需要一种网络安全机制来解决这些问题。在早期,很多的专业计算机人员就通过对网络安全构成威胁的主要因素的研究,已经开发了很多种类的产品。但纵观所有的网络安全技术,我们不难发现加密技术在扮演着主打角色。它无处不在,作为其他技术的基础,它发挥了重要的作用。本论文讲述了加密技术的发展与实现,两种密钥体制(常规密钥密码体制和公开密钥密码体制),以及密钥的管理(主要讨论密钥分配)。我们可以在加密技术的特点中看到他的发展前景,为网络提供更可靠更安全的运行

9、环境。 通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。信息安全产品从应用类型上可以分为防火墙类产品、防病毒类产品、防攻击类产品、密码类产品、认证类产品和访问控制类产品。相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。在本次毕业设计中,对公钥密码体制和私钥密码体制进行了分析和研究,并对公钥密码体制和私钥密码体制的代表

10、DES算法进行了研究和比较。并且实现了基本的文件加密解密的处理流程,能提供对文件的安全、有效的保护。1.2 本论文的主要方法和研究进展信息是一种资源,也是一种财富。在现代社会中,信息处理和通信技术日益发展,保护信息的安全,特别是保护重要信息的安全,越来越成受到国内外有关研究人员的极大重视。当前由于信息的保护不利和失误,世界各国遭受的损失是巨大的。现在,国际互联网上的各站点,几乎都有各种各样的安全措施,例如防火墙(Fire Wall)、网络加密、加密狗等。但是,这些都是系统或网站层次的安全设施。对于广大用户来说,更为直接、也更为有效的办法,就是使用信息加密技术。加密技术是一门实用的技术,有着悠久

11、的历史。过去,加密技术仅被军事和谋报人员以及某些大型商业企业所采用,应用范围十分有限。加密学也是一门与数学有关的深奥的科学,有能力研究加密学的人为数不多。恐怕这也是它鲜为人知、较少应用的原因。信息安全的内容主要包括五个部分:信息的保密性、信息的完整性、信息的可用性、信息的可控性、信息的不可否认性。密码技术是保证信息安全的核心。密码学泛指一切有关研究密码通信的学问,其中包括下面两个领域:如何达成秘密通信,以及如何破译秘密通信。也就是密码编码学:指如何达到信息的秘密性,鉴别性的科学;密码分析学:泛指如何破解密码系统,或伪造信息使密码系统误以为真的科学。从密码学的发展来看,它经历了传统(古典)密码学

12、、近代密码学、现代密码学几个阶段,计算机、数学领域的最新成果往往与密码学有关或被应用于密码学研究中。密码学拥有悠久、丰富多彩的历史。作为古典密码其中的一种,早期出现的密写术形式只需要纸和笔就可以完成。古典密码学的两大范畴是将消息内容进行重新排列的位移密码和系统地将字母进行替换的替换密码。古典密码学会透露出与明文统计学结果相关的大量信息,因此容易被破解,如对频率分析可以有效地攻击古典密码。尽管保密强度很低,由于实现难度低,加密解密快,古典密码至今仍然被广泛使用。在古典密码学中,有四种类型的代替密码:简单代替密码,或单字母密码:就是明文的一个字符用相应的一个密文字符代替。Caesar 密码就是典型

13、的简单替代密码。多编码代替密码:它与简单代替密码系统相似,唯一的不同是单个字符明文可以映射成密文的几个字符之一,例如 A 可能对应于5、13、25 或 56,“B”可能对应于 7、19、31 或 42,等等。字母代替密码:字符块被成组加密,例如“ABA”可能对应于“RTQ”,ABB 可能对应于“SLL”等。多表代替密码:由多个简单的代替密码构成,例如,可能有 5 个被使用的不同的简单代替密码,单独的一个字符用来改变明文的每个字符的位置。20 世纪初,包括转轮机在内的一些机械密码加密装置被发明出来,其中最有名的是二次世界大战中德国使用的恩尼格码(Enigma)机。由这些装置实现的密码显著提高了密

14、码分析的复杂程度,大量的攻击也仅仅取得了有限的结果。古典密码学以移位密码、替换密码、转轮机为代表,以替代和置换为基础的密码系统在今天看来已经不堪一击,无法保证信息的安全,对处心积虑的攻击者来说形同虚设,因为已经有成熟的分析方法来破解这一类的加密方法。借助电子计算机的发展,人们可以实现更复杂的密码系统。与古典密码和机械密码对 26 个字母进行操作不同,计算机密码的一个显著特征是对二进制串进行操作。计算机密码对密码分析有更强的抵抗力,只有少数情况下唯密文攻击才会生效。密码学的大发展时期是上世纪 70 年代,以 DES 和 RSA 算法的提出为代表。一系列的突破创立了新的密码学体系。近代密码学的另一

15、个分支是序列密码,这种密码体制采用与明文长度相同的密钥,利用模加(异或)的方法来掩盖明文的内容。这种加密方法虽然简单,但在使用一次性密钥的情况下,可获得极高的安全性,由于密钥不重复使用,给破译带来了极大的困难。但这种方法也有其缺点,由于密钥只使用一次,不适合对大量数据进行加密,尤其是流媒体数据,而且大量密钥的分发、传送也是一个问题。这种方法安全性的关键是要保证密钥序列的随机性,然而“真”随机数是不容易通过固定算法来产生的,而使用“伪随机数”则存在着一定的风险。近年来提出的“量子密码”采用了量子状态来传递信息。“海森堡测不准原理”是量子力学的基本原理,它表明,在同一时刻以相同的精度测定量子的位置

16、与动量是不可能的,只能精确测定两者之一。“单量子不可复制定理”是“海森堡测不准原理”的推论,它表明,在不知道量子状态的情况下复制单个量子是不可能的,因为要复制单个量子就只能先作测量,而测量必然改变量子的状态,所以说不可能。这样使用量子状态作为“一次性便签”可以达到无条件保密。因为如果量子在传输中被测量,其状态就会改变,从而在传输中监听者会因此而暴露。虽然量子密码拥有优秀的安全特性,但目前仍处于研究阶段。密码原理。所谓加密,就是将正常情况下可懂的文件数据输入密码机,由密码机变成不可懂的乱码,即将“明文”变成“密文”;所谓解密,就是上述过程的逆过程,即将“密文” 变成“明文”。密码机可看做是一个用

17、电子元件实现一种复杂数学运算的机器。复杂数学运算可记为,这里C=密文,p=明文,k=密钥,f是密码算法。K是自变量,C是因变量。不同的K有不同的C,对于某个密码算法f,K的选择范围越大,C的变化就越多,这个密码算法被人破译的难度就越大,保密强度就越高。如何评价K的选择范围大小呢?一般是看K的位数,位数长的(如128位以上)选择范围大,位数短的(如56位)选择范围小。一个国家的密码政策,通常是用位数长的高强度密码(位数可达)保护国家秘密,其它用于保护商业秘密。 在数据传输加密过程中,收发双方线路密码机使用的是相同的密码算法,注入了相同的密钥,发方向收方发出明文,经密码机变成密文后送上公网通信线路

18、,到达收方后先经密码机解密再送到收方电脑上。密文在公用通信网上传输时,如果被截收,窃密方收到的是不可懂的乱码,无法窃取信息内容。 在文件存储加密中,加密解密卡加解密采用同一种算法和同一个密钥,工作人员用电脑处理文件后先将文件加密再存入磁盘,以防窃密者盗用磁盘窃取文件。工作人员调用该文件时,文件先经解密再从显示器上显示出来以供使用。第二章 DES介绍及需求分析2.1 需求分析数据加密标准曾被美国国家标准局(NBS,现为国家标准与技术研究所NIST)确定为联邦信息处理标准(FIPS PUB 46),使用广泛,特别是在金融领域,曾是对称密码体制事实上的世界标准。目前在国内,随着三金工程尤其是金卡工程

19、的启动,DES算法在POS、ATM、智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输、IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。因此,对于目前的电子交易市场以及一些商业领域,DES依旧存在着广大的需求。这次课程设计所完成的DES算法,主要是要实现对输入的一组数据,进行DES加密,加密模式分为ECB、CBC、CFB、OFB四种。函数接口是用户自定义的,我们将完成它的内部构造,并封装成dll,以供用户程序调用。该算法所要完成的工作主要是,用户输入密钥以及明文,然后选择需要加密的方式。程序应该实现能

20、判断用户输入的密钥长度是否正确以及输入的数据是否为空,在做出如上判断之后,还要对数据进行填充,填充的方式为:明文不足整块填充格式为L(1子节长度)+L个连续的0x80。比如刚好整块数据,最后填充7个0x80,填充的数据为:0x07 0x80 0x80 0x80 0x80 0x80 0x80 0x80。再比如最后一块为7字节,那么填充的数据就为:0x00。在这些准备工作之后,方可对数据进行加密。在解密的时候,还要完成将填充的数据去掉,恢复以前输入的明文。 常规密钥密码体制所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。这种加密系统又称为对称密钥系统。使用对称加密方法,加密与解密方必须

21、使用相同的一种加密算法和相同的密钥。图2-1加密解密过程示意图因为通信的双方在加密和解密时使用的是同一个密钥,所以如果其他人获取到这个密钥,那么就会造成失密。只要通信双方能确保密钥在交换阶段未泄露,那么就可以保证信息的机密性与完整性。对称加密技术存在着通信双方之间确保密钥安全交换的问题。同时,一个用户要N个其他用户进行加密通信时,每个用户对应一把密钥,那么他就要管理N把密钥。当网络N个用户之间进行加密通信时,则需要有N(N-1)个密钥,才能保证任意两者之间的通信。所以,要确保对称加密体系的安全,就好要管理好密钥的产生,分配,存储,和更换。常规密码体制早期有替代密码和置换密码这二种方式。下面我们

22、将讲述一个著名的分组密码美国的数据加密标准DES。DES是一种对二元数据进行加密的算法,数据分组长度为64位,密文分组长度也是64位,使用的密钥为64位,有效密钥长度为56位,有8位用于奇偶校验,解密时的过程和加密时相似,但密钥的顺序正好相反。DES算法的弱点是不能提供足够的安全性,因为其密钥容量只有56位。由于这个原因,后来又提出了三重DES或3DES系统,使用3个不同的密钥对数据块进行(两次或)三次加密,该方法比进行普通加密的三次块。其强度大约和112比特的密钥强度相当。 密码体制。收发双方密码机的密码算法一致、密钥一致,这在密码体制中叫“秘密密钥体制”或“单密钥体制”,这是一种传统的密码

23、体制,有系统的理论研究和完善的管理机制,技术成熟,性能稳定,国内自行研制的产品安全可靠、保密强度高,一般用于文件数据加密存储和传输。国外著名的DES密码就是美国政府1977年发布的密钥长度为56位的“秘密密钥体制”的密码。这种密码的缺陷是:仅适用于内部的,点对点方式的,事前双方已知密钥的两点之间的加密传输,保守密钥的秘密十分重要,密钥一旦丢失,整个系统都要立即更换密钥,否则窃密者将可能轻而易举的破解密文。随着近代计算机网络的发展,不同部门、不同单位网上交往增多,“单密钥体制”显出了它的局限性,人们很难对众多的部门和单位保管好各自不同的密钥。于是人们又发明了“公开密钥体制”或叫“双密钥体制”。它

24、是基于一些数学问题而发明出来的密码体制,这些数学问题可记为,其中,写在一起就是,这个公式说明有这样一种数学运算,它可以将用密钥k加密的密文用密钥k解密,国外1978年公布的RSA密码就是这种有两个密钥的密码。这种密码保密强度不如单密钥体制的密码,一般用于通信双方的身份确认和数字签名。 在实用的互联网络中,各用户通过加密传输可形成一个虚拟的保密互联网。该网要由一个各用户认可的密钥管理中心来生成、管理、分发和销毁密钥,同时各用户可将自己的“公钥”也存放在密钥管理中心。各用户需进行保密通信时,先通过公钥系统进行身份确认(这个过程中密钥管理中心可起到仲裁鉴别作用),双方确认身份后由密钥管理中心分发秘密

25、密钥,双方用得到秘密密钥进行数据或文件的加密传输。这种工作方式不但适用于党政机关内部,也同样适用于电子商务,但电子商务和党政机关不能使用同一个级别的密码设备,党政机关用的是“普密”设备,电子商务只能用“商密”设备,二者的保密强度是不一样的。2.2 分组加密解密算法-DES算法简介DES(Data Encryption Standard)起源于1973年美国国家标准局(NBS)征求国家密码标准方案。IBM就提交了其在20世纪60年代末设立的一个计算机密码编码学方面的研究项目的结果,这个项目在1971年底研制出了一种称为Lucifer的算法。它是当时提出的最好的算法,因而在1977年被选为数据加密

26、标准,有效期为5年,随后在1983年、1987年、1993年三次再度授权该算法续用5年。DES满足了美国国家标准局欲达到的4个目的:1) 提供高质量的数据保护即防止数据未经授权的泄露和未被察觉的修改2) 具有相当高的复杂性3) 使得破译的开销超过可能获得的利益4) 便于理解和掌握DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位。首先,DES把输入的64位数据块按位重新组合,并把输出分为L0、R0左右两部分,每部分各长32位,并进行前后置换(输入的第58位换到第一位,第50位换到第2位,依此类推,最后一位是原来的第7位),最终由L0输出左32位,R0输出右32位,根

27、据这个法则经过16次迭代运算后,得到L16、R16,将此作为输入,进行与初始置换相反的逆置换,即得到密文输出。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密,如果Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式作为DES的输出结果。在使用DES时,双方预先约定使用的“密码”即Key,然后用Key去加密数

28、据;接收方得到密文后使用同样的Key解密得到原数据,这样便实现了安全性较高的数据传输。2.3 DES加密流程图DES加密流程图:图2-2 DES加密流程图2.4 DES算法详述DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其功能是把输入的64位数据块按位重新组合,并把输出分为L0 、R0两部分,每部分各长32位,其置换规则见下表: 58,50,12,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,5

29、9,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,即将输入的第58位换到第一位,第50位换到第2位,依此类推,最后一位是原来的第7位。 L0、R0则是换位输出后的两部分,L0是输出的左32位,R0 是右32位,例:设置换前的输入值为D1D2D3D64,则经过初始置换后的结果为:L0=D550D8;R0=D57D49.D7。经过26次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,即得到密文输出。逆置换正好是初始置的逆运算,例如,第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1

30、位,其逆置换规则如下表所示: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, 放大换位表 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,

31、20,21, 22,23,24,25,24,25,26,27,28,29,28,29,30,31,32, 1, 单纯换位表 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,11, 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

32、,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

33、, 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: 7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15, 13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9, 10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4, 3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14, S5:2,12,4,1,7,10,11,6

34、,8,5,3,15,13,0,14,9, 14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6, 4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14, 11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3, S6: 12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11, 10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8, 9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6, 4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13, S7

35、: 4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1, 13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6, 1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2, 6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12, S8: 13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7, 1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2, 7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8, 2,1,14,7,4,10,8,13,15

36、,12,9,0,3,5,6,11, 第三章 系统设计3.1 设计基本原理此次课程设计采用的开发工具是Visual Studio 2005,所选用的开发语言是C+。这种开发工具和开发语言都是当今比较流行的。Visual Studio 2005是微软推出的应用于 2.0开发的首选工具,其功能强大而且方便易用,同时它也是一套完整的开发工具,用于生成 ASP Web 应用程序、XML Web services、桌面应用程序和移动应用程序。Visual Basic 、Visual C+ 、Visual C+ 和 Visual J# 全都使用相同的集成开发环境 (IDE),该环境允许它们共享工具并有助于创

37、建混合语言解决方案。另外,这些语言利用了 Framework 的功能,此框架提供对简化 ASP Web 应用程序和 XML Web services 开发的关键技术的访问。 C+是 平台上最重要的语言之一。C+语言源于C和C+,是微软专门为 设计的语言。C+和 Framework同时出现和发展。由于C+出现较晚,吸取了许多其他语言的优点,解决了许多问题。 简单的看来,C+仅仅是 开发的一种语言。但事实上C+是 开发中最好的一门语言,这是由C+自身的设计决定的。作为专门为 设计的语言,C+不但结合了C+强大灵活和Java语言简洁的特性,还吸取了Delphi和Visual Basic所具有的易用性

38、。因而C+是一种使用简单,功能强大,表达力丰富的全新语言。 此次课程设计是调用 中加密方法,进行开发。首先,运行软件,首先选择加密后文件的保存路径,然后将要加密的文件拖入加密窗口,输入密码,确定后进行加密,加密后的文件就保存在指定的路径上。加密文件分为了两个部分,前面一部分是文件头,里面包含了加密标志等一些文件的基本信息;第二部分就是密文,就是加密过的信息。同理,解密时,也要选择好解密后的文件的保存路径,然后利用文件头里的信息,将文件解密并恢复到源文件的样子。3.2 界面设计 3.1.1 加密解密界面设计运行Microsoft Visual Studio环境,创建一个项目命名为:Windows

39、Application1,在项目里建一个表单Form1,把它作为文件加密解密工具的主界面。主界面窗口有三个标签:设置、加密、解密,要分别对这三个标签做详细的设计,设计时要用到Microsoft Visual Studio里的工具箱里面的工具。每个标签的设计如下:一、“加密”标签的设计此标签包含有4个panel(此处只实现一个)和textBox1,textBox1用于存放传过来的加密路径。panel主要实现文件的拖放和文件的加密功能。当一个文件拖到panel中时,会弹出一个要求输入密码的对话框。把输入的密码传回到Form1的panel1_dragDrop中,实现拖放功能.此标签包含有4个pane

40、l(此处只实现一个)和textBox1,textBox1用于存放传过来的加密路径。panel主要实现文件的拖放和文件的加密功能。当一个文件拖到panel中时,会弹出一个要求输入密码的对话框。把输入的密码传回到Form1的panel1_dragDrop中,实现拖放功能的代码如下:private void panel1_dragEnter (object sender, DragEventArgs e) If (e.Data.GetDataPresent (DataFormats.FileDrop) e.Effect = DragDropEffects.Copy; Else e.Effect =

41、DragDropEffects.None; public void panel1_dragDrop (object sender, DragEventArgs e)If (e.Data.GetDataPresent (DataFormats.FileDrop) /文件加密代码实现部分再把panel1的属性中的AllowDrop属性值设置为True,这样panel1的文件拖放就实现了。按照些方法就可以实现其余三个panel的拖放功能。1文件的加密界面主要由四个长方形的框条组成(如图4-1所示),它们分别运用四种加密算法来实现文件的加密,用户可以根据需求来选择符合自己要求的算法。图4-1文件加密界

42、面二、“解密”标签的设计此界面中有一个panel和一个textbox2, textbox2用于存放传过来的加密路径,panel用于实现文件的拖放和解密功能,当一个文件拖到panel中时,会弹出一个输入密码对话框。把输入的密码传回到Form1的panel5_dragDrop中,实现拖放功能的代码如下:private void panel5_dragEnter (object sender, DragEventArgs e If (e.Data.GetDataPresent (DataFormats.FileDrop) e.Effect = DragDropEffects.Copy; Else e

43、.Effect = DragDropEffects.None; public void panel5_dragDrop (object sender, DragEventArgs e)If (e.Data.GetDataPresent (DataFormats.FileDrop)/文件解密代码实现部分2文件的解密界面主要由一个长方形的框条组成(如图4-2所示),当你需要进行文件的解密时只需将需要解密的文件拖入长方形框条内即可实现解密功能。图4-2文件解密界面三、“设置”标签的设计此界面主要有两个部分组成:加密文件存储路径和解密文件存储路径,由groupbox1、groupbox2、组成。在gr

44、oupbox11中有两个单选按钮radiobutton1和radiobutton2,分别命名为“与加密文件相同目录”、 “指定存储路径” ,一个文本框textbox3和一个button1,textbox3用于存放指定的加密路径,button1实现文件的路径的选择。在代码设计部分,要首先让radiobutton1在程序运行时自动获得焦点,在radiobutton1获得焦点时,radiobtuuon2将会失去焦点,同时textbox3和button1的状态为不可见状态。要实现这些功能就要把radiobutton1和radiobutton2同时放到一个函数中,设此函数为aaa,实现代码如下:priv

45、ate void aaa(object sender, EventArgs e) if (radioButton2.Checked = true) this.button1.Enabled = true; this.textBox3.Enabled = true; else this.button1.Enabled = false; this.textBox3.Enabled = false; this.textBox1.Text = 与原文件路径相同; 然后实现button1的功能,button1是弹出存储路径设置的浏览框,选择合适的存放路径后点击“确定”,就可以把路径传给textBox3,

46、代码实现如下:private void button1_Click (object sender, EventArgs e) FolderBrowserDialog folder = new FolderBrowserDialog (); if (folder.ShowDialog () = DialogResult.OK) this.textBox3.Text = folder.SelectedPath; this.textBox1.Text = this.textBox3.Text; 按照以上的步骤就可以实现选择指定的加密路径,但路径只会传给textBox3,在button2中添加如下代码,使textBox3中存放的路径值传给textBox1,并将textBox3的值设置为空,具体代码如下:private void radioButton2_CheckedChanged (object sender, EventArgs e) this.textBox

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服