文件移位加密与解密系统C课程设计

上传人:夏** 文档编号:485411539 上传时间:2022-12-23 格式:DOC 页数:32 大小:278.50KB
返回 下载 相关 举报
文件移位加密与解密系统C课程设计_第1页
第1页 / 共32页
文件移位加密与解密系统C课程设计_第2页
第2页 / 共32页
文件移位加密与解密系统C课程设计_第3页
第3页 / 共32页
文件移位加密与解密系统C课程设计_第4页
第4页 / 共32页
文件移位加密与解密系统C课程设计_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《文件移位加密与解密系统C课程设计》由会员分享,可在线阅读,更多相关《文件移位加密与解密系统C课程设计(32页珍藏版)》请在金锄头文库上搜索。

1、 计算机学院计算机科学与技术专业?程序设计综合课程设计?报告 20010/2021学年 第一学期学生姓名: 学生班级: 学生学号: 指导教师: 2011年01月08日文件移位加密与解密系统目 录第一章.课程设计目的和要求1设计目的:11.2 设计要求:1第二章.课程设计任务内容2第三章.详细设计说明3模块描述33.2 性能33.3 输入项3输出项3算法4接口13数据文件存储说明13注释设计13限制条件13测试方案1414第四章.软件使用说明17第五章.课程设计心得与体会18附录1:参考文献20附录2:源代码211.1设计目的:1、 提高程序设计和分析的能力。2、 深入了解c+程序设计的知识与技

2、巧.3、 进一步掌握c+程序设计的思想.4、 初步了解程序加密与解密的思想.1.2 设计要求:1、 完整的理解课程设计任务的要求.2、 用C语言实现系统.3、 函数功能要划分好结构化程序设计.4、 设计的程序结构完整、简明、可读性强.5、 界面友好良好的人机交互,加必要的注释.6、 设计的程序调试成功,能稳定的运行.7、 提供程序测试方案.8.列出参考的文献和完整的程序清单.设计一个文件加密与解密的程序,主要功能主要包括以下内容:1.文件加密:设计三种加密算法2.文件解密。3.实现主函数和子函数之间的参数传递.模块描述该模块是一个简单完整的程序,主要包括3个算法。其功能是将某一文件的内容仅限于

3、英文字母以字符形式读出,根据密钥或密码用户从键盘输入将对应字符进行加密、解密操作并输出结果。3.2 性能 1要求有较快的运算速度,能很快的执行函数功能; (2) 要求程序运行稳定,无误; (3) 要求程序有良好的人机互动.3.3 输入项 包括以下内容:1要加密的字符窜s,其类型为string类型。2加密密匙或密码key;其中密匙为int类型,密码为string类型。3解密密匙或密码key1;4执行操作与否的判断 y/n;其类型为字符型。 所有的输入均有用户由键盘输入。 包括以下内容:1必要的提示数据:中文和*号;2已加密的密文和解密后的明文;其类型均为string类型. 所有输出项都由显示器输

4、出。单表移位算法:就是明文的一个字符用相应的一个密文字符代替。加密过程中是从明文字母表到密文字母表的一一映射。例如:加密:设原文为abcdef,密钥为5,那么有abcdef每个字母按字母表移动5位注:z后接a可得到密文乱码fghijkl;对该文件解密:文件内容为fghijk1,密钥为5,那么有fghijk1每个字母向前移动5位注a后接z,可得到原文abcdef。凯撒密码就是单表代替密码,它的每一个明文字符都由其右边第3个模26字符代替A由D代替,B由E代替,W由Z代替,X由A代替,Y由B代替,Z由C代替。单表代替密码是很容易破译的,因为它没有把明文的不同字母的出现频率掩盖起来。可以使用统计攻击

5、。多表移位算法:多表代替密码有多个单字母密钥,每一个密钥被用来加密一个明文字母。第一个密钥加密明文的第一个字母,第二个密钥加密明文的第二个字母等等。在所有的密钥用完后,密钥又再循环使用,假设有20个单个字母密钥,那么每隔20个字母的明文都被同一密钥加密,这叫做密码的周期。维吉尼亚密码是多表代替密码的例子。例如:加密时,将每个字符的ascll码依次反复加上“2021密码, 由用户自由输入中的数字,并在32 122 z之间做摸运算。 置换算法行列换位法算法的原理是不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。置换密码也叫换位密码。如矩阵换位密码。它的加密方法是将明文中的字

6、母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,形成密文。行列换位法采用密钥,假设密钥是5,明文是I am a Chinese boy那么就会以5位列数排成一个矩阵。 I a m a c h i n e s e b o y 那么密文就是ihe aib mno aey cs ,最后一行缺乏的用随机字母填充,代表那个随机字母!先加密后解密开 始charc100;key0N密匙输入错误!Yreturn;才【i=0i96&ci64&ci91YYNci=(ci+key65)%26+656565;结 束不需解密!解密完成!!rsp.empty()&rsp0!=n加密完成!;

7、i+YNY图3-5-1 单表移位算法流程图 图3-5-2多表移位算法流程(1)图3-5-2 多表移位算法流程图(2)图3-5-3 置换算法流程图(1)图3-5-3 置换算法流程图(2)图3-5-3 置换算法流程图(3)3.6 函数主程序流程char i=0;开始i !=4单表移位算法选择算法YNi=1i=2break;退出i=4置换算法i=3多表移位算法YNYNY 结 束Yreturn0; 图3-6 主函数流程图 本程序是一个独立的程序,并无上下接口。 本程序中数据皆为一次性数据,不进行数据的存储操作。 在各个变量和各个函数后都附加了注释。 本程序只适合vc+平台。 图3-11-1程序测试运行

8、结果 图3-11-2程序测试运行结果 图3-11-3程序测试运行结果 图3-11-4程序测试运行结果 图3-11-5程序测试运行结果 图3-11-6程序测试运行结果经过不同测试,本程序运行良好,运算速度根本到达要求。本程序仅适用于vc+平台,可以将某一文件的内容仅限于英文字母以字符形式读出,根据密钥用户从键盘输入将对应字符进行移位简单的加密、解密操作。 3周的程序设计就要结束了,我的设计成果也就要完成了。回想这三周的学习设计历程,突然间想到了很多。 刚拿到设计题目的时候,觉得挺简单的,马上就有了思路,但当我真正去设计的时候才发现困难重重,突然间才意识到学到的知识太少了,真是“书到用时方恨少。当

9、我明白自己的知识有多么匮乏时,我开始行动起来寻找帮助,图书馆,上网,问同学等等。而在寻找帮助的过程中,我更是深深的意识到:知识是无穷尽的! 在设计的过程中有很多的困难,有些通过上网查资料,问同学根本上能解决,但也有些困难解决不了。这时候是老师给我指明了道路,让我豁然开朗。现在想想,终于体会到了“导师的含义。 程序设计完成后,最重要的任务是写程序报告。这却是让我体会最深的。首先,程序报告的格式让我明白了什么叫“最正确的。报告格式的内容很多,大大小小方方面面都要注意,其实做人,做事也是如此,细节决定成败。见微知著,报告格式的严谨也让我想到,如果学习有这么严谨的态度,怎会没有成就? 通过这次的程序设

10、计,我学到了很多,也明白了很多。最深的感触是:“其实,人都是逼出来的!。 以前觉的课程设计那么难,怎么可能完成呢,现在成果就在眼前,突然发现自己的潜力有多么深,如果以前上课时都能这么努力,学习怎么可能不好? 这次的程序设计让我感到自己要学的还真的很多,也让我明白该如何去掌握如何学习新知识的能力。以前一直觉得课本里的知识已经很够用了,现在才发现自己学到的真得太少,真的是见大海方知天地广。还有就是知识的迁移能力太差了,明明就是课本上的知识却感觉棘手,以后要重点培养自己的知识运用能力。最后就是,发现学习知识的途径是很多的,并不是局限于学校,老师,其实,网络是一个巨大的资源库,合理利用会让我学到很多的

11、知识。 总之,这次的程序设计让我看到了自己的差距,也明白了以后要努力的目标,真正体会到了学习的含义。附录1:参考文献1 C+语言程序设计 谭浩强 出版社 清华大学出版社 出版日期:20042 C+ Primer中文版(第4版) Stanley B.Lippman, Josee Lajoie, Barbara E.Moo 译者: 李师贤 蒋爱军 梅晓勇 林瑛 出版社 人民邮电出版社 出版日期: 2006-03-313 C+语言程序设计 蒋爱军 刘红梅 王泳 梁小萍 出版社 人民邮电出版社 出版日期: 2008-05-294 C+必知必会 Stephen C.Dewhurst 译者: 荣耀 出版社 人民邮电出版社 出版日期: 2010-11-155 C+编程标准:101条规那么、准那么与最正确实践 Herb Sutter, Andrei Alexandrescu 译者: 刘基诚 出版社 人民邮电出版社 出版日期: 2010-11-15 6 写给大家看的C+书 Larry Ullman, Andreas Signer 译者: 杨涛 王建桥 杨晓云 出版社 人民邮电出版社 出版日期: 2009-06-15附录2:源代码/ Note:Your choice is C+ IDE#include #in

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号