1、 C 语言课程设计 课程设计课程设计报告报告 题 目 数据的加密与解密 学 号 姓 名 年级专业 2012 级电子信息工程专业 指导教师 完成日期 2013 年 6 月 17 日 2 目录目录 课程设计任务书3 摘要4 关键词4 原理4 一系统功能分析5 1.1 设计目的5 1.2 功能描述5 二C 语言程序编写6 2.1 程序结构图6 2.2 程序流程图6 2.3 程序源代码8 三程序功能示例13 3.1 示例截图13 3.2 测试过程16 四设计体会与收获16 五参考文献16 3 C 语言程序课程设计任务书语言程序课程设计任务书 题 目 数据的加密与解密 设 计 目 的 将某一已知文件的内
2、容(仅限于英文字母)以字符形式读出,根据密 文(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。 例如:加密:设原文为 abcdef,密钥为 5,则有 abcdef每个字母按字 母表向后移动 5 位(注:z后接 a)可得到密文(乱码)fghijkl;对该文件 解密:文件内容为 fghijk1,密钥为 5,则有 fghijk1 每个字母向前移动 5 位(注 a 后接 z) ,可得到原文 abcdef。 设 计 进 度 安 排 第一阶段:选择课程设计的题目; 第二阶段:搜寻有关课程设计的资料,查阅相关的书籍; 第三阶段:开始编辑 C 语言程序; 第四阶段:完成了 C 训言程序的编写,开
3、始撰写 C 语言菾程设计报告; 第五阶段:完成了 C 语言课程设计报告的撰写。 教 师 审 核 签 名 4 摘要: 作为保障数据数据安全的一种方式,对于信息的加密技巧起源于欧洲,最广 为人知的编码机器是德国的 German Enigma, 在第二次世界大战中德国人利用它 创建了加密信息系统,从而解决军事信息的保密通讯问题。 尽管加密技术被首先使用在军事通信领域,但是人们或许出于安全的考虑, 开始逐渐对于商业机密、 政府文件等重要信息实施加密手段。 数据加密应运而生。 其基本原理是: 对明文(可读懂的信息)进行翻译,使用不同的算法对明文以代码形式(密 码)实施加密。该过程的逆过程称为解密,即将该
4、编码信息转化为明文的过程。 从事数据加密研究的人称为密码编码者 (Cryptographer) ,而从事对数据解密 的专业人士称为密码分析者(Cryptanalyst) 。如今数据加密技术被广泛地应用与 国民经济各个领域,特别是政府机关和国防情报部门,此外才是科学研究机关、 商业部门、新闻出版、金融证券、交通管制与电力输送等部门。 而 C 语言程序设计教学不仅仅局限于使学生单纯地了解和掌握 C 语言的基 本语法规范,而是要致力于培养学生运用 C 语言解决实际问题的编程能力。C 语言程序设计教学方法的改革让学生从多角度、以多方式去了解和掌握 C 语言 以及程序设计的精髓, 着重培养学生无论以后在
5、学习、 工作中使用什么语言编程, 都能灵活应用这些思想和方法的能力。 关键词:C 语言,程序设计,换位法,换位位数,数据加密与解密 原理: 换位法加密的原理是将英文句子中的空格 去除,然后将句子排成若干 行,每行的字符 数为换位位数,再按列输出即为密文,不足 部分填入随机字母。 ;例如英文 can you come here 若换位位数取 4,则密文为 comraueench*yoe*, *代表随机字母,如右图所示: c a n y o u c o m e h e r e * * 输入方向 输 出 方 向 换位法示意图 5 一、系统功能分析 1.1 设计目的设计目的 本课程设计的目的是为了保证个人数据资料不被他人非法窃取使用, 保护个 人的隐私及重要文件。 1.2 功能描述功能描述 本程序主要是对已知文件(为英文字符)通过一定的算法将其转换成非本身 的其他英文字母以达到文件加密的目的。整个系统由以下几大功能模块组成。 1.主控选择模块 此模块是主程序操作界面,供用户进行选择。用户可选择执行加密或解密操 作。 2.加密模块