77范文网 - 专业文章范例文档资料分享平台

毕业设计-文件加密与解密算法研究设计(7)

来源:网络收集 时间:2020-07-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

文件的加密与解密算法研究与实现

yxyDES(); //类构造函数 ~yxyDES(); //类析构函数

void InitializeKey(string); //功能:产生16个28位的key //参数:源8位的字符串(key)

//结果:函数将调用private CreateSubKey将结果存于char SubKeys[16][48]

void EncryptData(string); //功能:加密8位字符串 //参数:8位字符串

//结果:函数将加密后结果存放于private szCiphertext[16] // 用户通过属性Ciphertext得到 void DecryptData(string ); //功能:解密16位十六进制字符串 //参数:16位十六进制字符串

//结果:函数将解密候结果存放于private szPlaintext[8] // 用户通过属性Plaintext得到 void EncryptAnyLength(string); //功能:加密任意长度字符串 //参数:任意长度字符串

//结果:函数将加密后结果存放于szFCiphertextAnyLength[8192]

// 用户通过属性CiphertextAnyLength得到 void DecryptAnyLength(string); //功能:解密任意长度十六进制字符串 //参数:任意长度字符串

//结果:函数将加密后结果存放于

private private

第 26 页 共 32 页

文件的加密与解密算法研究与实现

szFPlaintextAnyLength[4096]

// 用户通过属性PlaintextAnyLength得到 void SetCiphertext(char* value); //Ciphertext的set函数 char* GetCiphertext(); //Ciphertext的get函数

void SetPlaintext(char* value); //Plaintext的set函数 char* GetPlaintext(); //Plaintext的get函数

char* GetCiphertextAnyLength(); //CiphertextAnyLength的get函数 char* GetPlaintextAnyLength(); //PlaintextAnyLength的get函数 private:

char SubKeys[16][48];//储存16组48位密钥 char szCiphertext[16];//储存16位密文(十六进制字符串) char szPlaintext[8];//储存8位明文字符串

char szFCiphertextAnyLength[8192];//任意长度密文(十六进制字符串)

char szFPlaintextAnyLength[4096];//任意长度明文字符串 void CreateSubKey(char*); //功能:生成子密钥

//参数:经过PC1变换的56位二进制字符串 //结果:将保存于char SubKeys[16][48] void FunctionF(char*,char*,int); //功能:DES中的F函数,

//参数:左32位,右32位,key序号(0-15) //结果:均在变换左右32位

第 27 页 共 32 页

文件的加密与解密算法研究与实现

void InitialPermuteData(string,char*,bool); //功能:IP变换

//参数:待处理字符串,处理后结果存放指针,加密/解密(true加密,false解密)

//结果:函数改变第二个参数的内容 void ExpansionR(char* ,char*); //功能:将右32位进行扩展位48位, //参数:原32位字符串,扩展后结果存放指针 //结果:函数改变第二个参数的内容

void XOR(char* ,char* ,int ,char*); //功能:异或函数,

//参数:待异或的操作字符串1,字符串2,操作数长度,处理后结果存放指针

//结果: 函数改变第四个参数的内容 string CompressFuncS(char* ); //功能:S-BOX , 数据压缩, //参数:48位二进制字符串, //结果:返回结果:32位字符串

void PermutationP(string ,char*); //功能:IP逆变换,

//参数:待变换字符串,处理后结果存放指针 //结果:函数改变第二个参数的内容 string FillToEightBits(string); //功能:当明文不足8位,使用'$'进行填充, //参数:原始字符串, //结果:返回8位字符串

void CleanPlaintextMark(int); //将不足8位而补齐的明文处理还原 //函数将处理szFPlaintextAnyLength

第 28 页 共 32 页

文件的加密与解密算法研究与实现

//结果: 例如123$$$$$ 处理后将变为 123'\\0' string HexCharToBinary(char);

//功能:16进制字符('0'-'F')到2进制字符串的转换 //参数:十六进制字符('0'-'F')

//结果:返回二进制字符串(\ string HexIntToBinary(int );

//功能:16进制整数(0-15)到2进制字符串的转换 //参数:十六进制整数(0-15)

//结果:返回二进制字符串(\ string BinaryToString(char*,int,bool); //功能:二进制串到字符串的转换,

//参数:源二进制字符串,二进制字符串长度,类型(true为二进制到hex,false为二进制到ANSCII char), //结果:返回处理后结果

int SingleCharToBinary(char); //功能:单个char '0'或'1' 到int 0或1的变换 //参数: '0'或'1' //结果:0或1

char SingleBinaryToChar(int);

//功能:将int类型的0或1转换为char类型的0或1 //参数:0或1 //返回:'0'或'1' }; #endif

5 测试分析

经过不断的测试与修改,该程序算法实现步骤是 Matthew Fischer 的

第 29 页 共 32 页

文件的加密与解密算法研究与实现

des-how-to实现,程序已经可以很好的满足用户的要求,所预计的各功能都能实现,比如说:

1.本程序可以加密1-4096个字符的任意长度字符串

2.如果密钥长度过短或者为空,程序将使用默认密钥进行加密. 3.加密结果将用16进制字符显示

4.本加密程序同时支持中/英文字符(包括密钥和明文) 5.本加密程序支持特殊字符[例如换行符(回车键)]

6 心得体会

经过几个星期的设计和开发,系统基本开发完毕。在本次课程设计中困难遇到不少,比如如何如何实现用树视控件实现子项的展开和合拢,使得用户方便快捷的找到文件所在位置;如何使用列表视控件实现文件的不同显示风格等,由于设计时间较短,所以该系统还有许多不尽如人意的地方,如出错处理不够完善等多方面问题。在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,这些都有待以后进一步改进。通过实践对于我以后的学习是一笔不小的财富!

第 30 页 共 32 页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库毕业设计-文件加密与解密算法研究设计(7)在线全文阅读。

毕业设计-文件加密与解密算法研究设计(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1135794.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: