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

C语言DES加密算法教程分析.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
云南大学软件学院 School of Software, Yunnan University 成绩 学 期: 2011秋季学期 课程名称: 密码技术 任课教师: 学生姓名: 学 号: 实验项目: 实验二 DES加密算法 联系电话: 电子邮件: 完成提交时间: 年 月 日 密码技术实验报告 实验项目:实验二,第2题 实现DES对任意文件的加解密 实验要求 (内容) 实现DES对任意文件的加解密,利用控制台对所有文件(中英文文本、符号甚至任意的文件)的加解密。 加解密形式如下: cipher -e/-d key inputfile outputfile 说明:对于加密来说,输入文件名就是明文文件,对于解密来说,输入文件名就是密文文件,注意文件读取方式和控制文件结束 控制台编程: int main(int argc, char *argv[ ]) 实验环境 操作系统:win7 编译环境:Microsoft Visual Studio 2010 实现功能 本次实验达到了题目的要求: 实现了用DES实现控制台对任意文件的加解密,用键盘接收明文(密文)文件路径和密钥,然后再输入需要保存的密文(明文)文件路径,然后就可以把加解密后得到的密明文文件保存该路径下。程序主要采取对数据的位操作的形式,把明密文文件中的内容以字节为单位读取,每次读取8个byte共65bits,然后使用标准DES的算法依次对读取的64bits明密文进出加解密处理。 主函数的操作也充分体现了程序的可操作性和健壮性,能够让用户自己选择相应的操作,比如加密、解密以及对程序的一些基本情况说明。 但是对文件的路径的输入有比较严格的格式约束。如:盘符名:\\文件名.txt 格式错误则会导致文件打开失败,不能进行加解密操作。 数据结构 本次实验的程序较为复杂,涉及对位的操作。实验过程中用到的主要数据结构为数组和文件型指针,在实验中我定义了2个文件型指针FILE *fp1,*fp2,其中一个指向明文文件,一个指向密文文件。另外还定义了多个字符数组,如char Plainfpath[260]声明字符数组存储明文文件的文件路径,char Cipherfpath[260]声明字符数组存储密文文件的文件路径,char key[100]声明字符数组存储密钥。对于读取出来的数据均以unsigned char的类型进行处理。这个程序的实现比较复杂的是对位的操作,主要包括取位值、移位和异或等,在对位的操作还主要用到了memcpy函数对unsigned char类型的字符串进行复制,除此之外没有采用更多的数据结构。 程序流程 程序模块结构图: 函数的调用关系: 函数的接口: void Encrypt(char *Plainfpath,char *Cipherfpath,unsigned char *Keys);//加密函数 void Decrypt(char *Cipherfpath,char *Plainfpath,unsigned char *Keys);//解密函数 void Block_Encrypt(unsigned char *Plain,unsigned char *Cipher,unsigned char *Key);//分组加密函数 void Block_Decrypt(unsigned char *Cipher,unsigned char *Plain,unsigned char *Key);//分组加密函数 void CToB(unsigned char *C_String,unsigned char *B_String);//将字符类型转换成二进制类型的函数 void BToC(unsigned char *B_String,unsigned char *C_Stri

文档评论(0)

我是兰花草 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档