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

DES加密传输系统设计与实现.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3 DES加密传输系统设计与实现3.1 引言在了解DES背景的前提下,以计算机高级语言C/C++为开发环境,设计并实现基于DES的文件加解密传输系统。3.2系统总体设计3.2.1设计目标和技术路线根据设计要求可知程序可分为两个部分。第一部分为利用DES对文件进行加密和解密,第二部分为传输文件。根据DES的加密原理和准则,需要构建一个密钥矩阵,利用密钥矩阵对文件完成加密过程,解密则是利用密钥矩阵完成加密的逆过程。第二部分初步的设计目标为编写一个点对点的传输系统,发送端利用IP直接查找接收端进行传输,接收端采取监听的方法接收发送端传输的文件。初步目标是以计算机高级语言为开发环境编写程序,则需要详细了解利用计算机语言如何完成DES密钥矩阵,并实现加密过程。加密过程中涉及到文件的查找与保存,则需要详细了解如何利用计算机语言实现对文件的查找及保存功能。传输部分则以监听和利用IP查找目的计算机为核心。3.2.2功能需求分析和设计原则根据设计目标,程序需要完成以下功能。1拥有独立交互界面,交互界面包括传输,加密,解密三个主要部分;2对已知文件进行加密;3对已加密文件进行解密;4对已知文件进行传输。加解密功能部分要求能对一般文本文件及图片完成加密和解密,传输功能部分要求对一般文件完成进行点对点的快速传输。3.2.3系统的总体架构程序初步设计框图如图3-1所示。图3-1 程序初步设计框图 从设计图上可以看出程序可以达到以下要求,程序的交互界面上,有加密,解密,传输3个主要部分。在任意端,能够对文件单独进行加密,或者对已加密文件进行解密。可以设置为发送端,向固定IP地址的接收端发送已加密文件或者普通文件。可以设置为接收端,接收发送端传输的加密文件或者普通文件。3.2.4交互界面设计根据程序的功能,交互界面应有以下几个部分。第1部分,密码输入窗口。包括两个输入栏,密码输入和再次输入密码,用户在这两栏中输入自己设定的密码即可。再次输入密码栏是为了避免操作失误而设置错误的密码,如图3-2。图3-2 密码输入界面第2部分,加密和解密的选择。包括两个可点击按钮,选择加密,系统进入加密状态,如选择解密,系统进入解密状态,如图3-3。图3-3 加密解密选择界面第3部分,文件选择及保存部分。点击打开按钮,弹出选择路径,点击保存按钮,弹出保存路径。在加密状态下打开表示选择要加密的目标文件,保存表示为加密后文件的保存路径。在解密状态下,打开表示为选择要解密的文件,保存表示为解密后文件的保存路径,如图3-4。图3-4 文件选择和保存界面第4部分,传输文件部分。点击作为客户端,具有发送功能,可在IP地址栏填写目标计算机IP地址,然后点击发送文件,弹出文件选择路径,选定文件后开始发送。点击作为服务器,具有接收功能,点击设置按钮即开始监听工作,如图3-5。图3-5 数据传输界面3.3关键模块实现3.3.1交互界面交互界面模块主要有3个部分构成:加密部分、文件路径寻找部分、文件传输部分,其具体实现如下。#ifndefyxyDESH#define yxyDESH#include string#include cmath#include stdio.h#include windows.husing namespace std;classyxyDES{public: char szFCiphertextAnyLength[8192];//任意长度密文(十六进制字符串) char szFPlaintextAnyLength[4096];//任意长度明文字符串yxyDES(); //类构造函数 ~yxyDES(); //类析构函数voidInitializeKey(string); //功能:产生16个28位的key //参数:源8位的字符串(key) //结果:函数将调用private CreateSubKey将结果存于char SubKeys[16][48]voidEncryptData(string); //功能:加密8位字符串 //参数:8位字符串 //结果:函数将加密后结果存放于private szCiphertext[16] //用户通过属性Ciphertext得到voidDecryptData(string ); //功能:解密16位十六进制字符串 //参数:16位十六进制字符串 //结果:函数将解密候结果存放于private szPlaintext[8] //用户通过属性Plaintext得到stringBinaryToString(char*,int,bool);

文档评论(0)

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

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

1亿VIP精品文档

相关文档