数据的加密与解密
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言课程设计》课程设计报告
题目数据的加密与解密
学号110803022
姓名桂阳阳
年级专业2011级通信工程
指导教师蔡继盛
完成日期2012 年 6 月 5 日
安徽师范大学物理与电子信息学院
College of Physics and Electronic Information, Anhui Normal University
目录
课程设计任务书 (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)
《C 语言程序》课程设计任务书
摘要:
作为保障数据数据安全的一种方式,对于信息的加密技巧起源于欧洲,最广为人知的编码机器是德国的German Enigma,在第二次世界大战中德国人利用它创建了加密信息系统,从而解决军事信息的保密通讯问题。
尽管加密技术被首先使用在军事通信领域,但是人们或许出于安全的考虑,开始逐渐对于商业机密、政府文件等重要信息实施加密手段。数据加密应运而生。其基本原理是:
对明文(可读懂的信息)进行翻译,使用不同的算法对明文以代码形式(密码)实施加密。该过程的逆过程称为解密,即将该编码信息转化为明文的过程。
从事数据加密研究的人称为密码编码者(Cryptographer),而从事对数据解密的专业人士称为密码分析者(Cryptanalyst)。如今数据加密技术被广泛地应用与国民经济各个领域,特别是政府机关和国防情报部门,此外才是科学研究机关、商业部门、新闻出版、金融证券、交通管制与电力输送等部门。
而C语言程序设计教学不仅仅局限于使学生单纯地了解和掌握C语言的基本语法规范,而是要致力于培养学生运用C语言解决实际问题的编程能力。C 语言程序设计教学方法的改革让学生从多角度、以多方式去了解和掌握C语言以及程序设计的精髓,着重培养学生无论以后在学习、工作中使用什么语言编程,都能灵活应用这些思想和方法的能力。
关键词:C语言,程序设计,换位法,换位位数,数据加密与解密
原理:
换位法加密的原理是将英文句子中的空格
去除,然后将句子排成若干行,每行的字符
数为换位位数,再按列输出即为密文,不足
部分填入随机字母。;例如英文can you come here 若换位位数取4,则密文为comraueench*yoe*,
*代表随机字母,如右图所示:
一、系统功能分析
1.1 设计目的
本课程设计的目的是为了保证个人数据资料不被他人非法窃取使用,保护个人的隐私及重要文件。
1.2 功能描述
本程序主要是对已知文件(为英文字符)通过一定的算法将其转换成非本身的其他英文字母以达到文件加密的目的。整个系统由以下几大功能模块组成。
1.主控选择模块
此模块是主程序操作界面,供用户进行选择。用户可选择执行加密或解密操作。
2.加密模块
此模块执行加密操作,输入明文后,去除空格得s1,再判断有没有缺空格,有就补随机字母,然后按照换位位数进行加密,从而得到密文。
3.解密模块
解密模块是完成对文件的解密工作,将密文转换为可被识别的明文。从外部文件中读入任意一个文件并将它解密并显示出来。
本次综合训练是计算机科学与技术、信息管理与信息系统、软件工程专业重要的实践性环节之一,是在学生学习完《C语言程序设计》、《数据结构》课程后进行的一次全面的综合练习。本课综合训练的目的和任务是:
1.巩固和加深学生对C语言、数据结构课程的基本知识的理解和掌握;
2.掌握C语言编程和程序调试的基本技能;
3.利用C语言进行基本的软件设计;
4.掌握书写程序设计说明文档的能力;
5.提高运用C语言、数据结构解决实际问题的能力。
二、C 语言源程序编写:
2.1 程序结构图:
主函数
2.2 程序流程图
2.3程序源代码:
#include
#include
#define CHANGDU 1000
int main( )
{
char *jiami(char *p,char *s1,int key); char *jiemi(char *p,char *s2,int key); int key,i,j,len;
char s1[CHANGDU];
char s2[CHANGDU];
char xstr[CHANGDU];
printf("
*****************************\n");
printf(" * welcome to use the system! *\n");
printf("
*****************************\n");
printf("qing shu ru yuan shi ming wen:");
gets(s2);
{
int m=0,i=0,t;
char ch;
t=strlen(s2);
for(i=0;i if(s2[i]!=' '&&s2[i]!='\0') { ch=s2[i]; s1[m]=ch;