单位信息学院(系)
专业。学号 20082408
学生姓名王万军
指导教师刘辉
完成日期年月日。
摘要。在这个信息时代,我们常常有大量的数据信息需要传输或交换。为了保证自己的数据不被别人非法地窃取,有必要对数据文件进行适当地加密。
本程序采取一定的算法对数据进行加密和解密,生成一个*.txt乱码文件和一个密码文件,同时将源文件删除。本程序分三个模块进行编写。
第一个是加密模块,它是用来对文件进行加密,产生乱码*.txt文件的;第二个是解密模块,它是用来对文件进行解密的。第三个是主控函数,对所要执行的操作进行选择。
本程序虽然还不够完善,在执行程序过程中还存在些许问题,但已基本上实现了对文件的加密解密功能,在对个人信息保护方面起到了一定的作用。
目录。1.选题的。
2.系统功能需求分析 16
3.系统设计 26
4.系统实现 40
4.总结 40
5.1总结 40
5.2 存在的主要问题 40
参考文献 41
1.1个人信息。
班级:计0805-1 学号:2082408 姓名:王万军。
1.2课程题目。
加密软件设计。
1.3选题原因。
通过学习计算机网络安全技术,对数据加密技术有了一些了解,他是指对网络中所发送的明文消息用加密密钥加密成明文进行传送,接收方通过解密密钥进行解密再现明文消息,从而保证传输过程中密文信息即使被泄露,在无密钥的情况下仍是安全的;学习了加密解密算法以及密钥压缩置换等知识,加强运用c语言,c++等以前学习的知识,增强学习与实践相结合的能力。
1.4知识连接及时间安排。
分支、循环、数组、函数等的综合运用;字符处理函数的使用。
第1天:选题、查阅资料;
第2天:确定设计方案;
第3-8天:方案的实现、调试;
第9-10天:撰写课程设计报告初稿并修改;
1.5参考文献。
c程序设计(第三版谭浩强著清华大学出版社。
visual c++ 6.0 项目开发指南武装张碧霞著国防工业出版社。
c语言趣味程序百类精解。
c语言开发实类详解。
部分网络资源
第二章系统功能需求分析。
2.1设计目的。
设计本程序是为了保证个人数据资料不被他人非法窃取盗用,为个人信息安全提供保障;能够快速准确的对文件进行加密,并且保证信息完整性。主要实现对文件的加密与解密。。
2.2功能描述。
本程序主要是对已知文档(为英文字符)通过一定的算法将其转换成不被识别的乱码以达到文件加密的目的。整个系统由以下几大功能模块组成。
2.2.1主控选择模块。
此模块是主程序操作界面,供用户进行选择。用户可选择执行加密或解密操作或选择退出程序。
2.2.2加密模块。
加密模块主要是完成对文件的加密操作。此模块中用户选择加密文件后可自定义文件名,让其按自己所定义的文件名输出。但文件类型不能更改,必须是以*.txt输出。
2.2.3解密模块。
解密模块是完成对文件的解密工作,将密文转换为可被识别的明文。同样用户只能对*.txt文件进行转换,生成一个新的需自定义文件名的*.
txt文件。用户必须输入正确的密码被系统确认后,程序才会将密文转换,否则程序会提示“密码错误,请重新输入!”
第三章总体设计。
3.1主控函数执行流程。
加密解密系统主流程如下图所示。此程序开始即进入主控选择界面,进行按键判断。
在判断键值时,有效的输入为0~2中的任意值,若按其他键则程序会提示选择错误,请重新选择;若选择1,则调用jiami()函数,执行对文件的加密操作;若选择2,则调用jiemi()函数,执行对文件的解密操作。选择0,退出程序。
3.2 加密模块。
加密模块主要实现将给定文件进行加密处理,通过一定的算法使其以不被识别的乱码输出。当执行加密操作时,系统会提示输入要加密的文件名。加密文件只能是以*.
txt命名,如果输入有误,系统会提示“您的路径有误,请重新进入。”然后按系统提示用户自定义输出文件名及密码。系统用fgetc(f1)(f1为文件指针)函数读入文件,并用fputc()输出。
然后系统会删除源文件以确保安全。若操作正确,系统会提示加密成功并进入主菜单。
3.3解密模块。
解密模块是实现对已加密文件的解密工作,将密文以可识别的明文输出。输出的文件名同样需要用户自定义。解密过程与加密过程类似。
在jiami()函数中生成了一个密码文件,解密时用if(strcmp(mima2,mima1)==0)进行判断,如果密码一致则执行解密操作,否则提示“密码错误,请重新输入!”解密成功后系统会删除密文及密码。
第四章系统实现。
4.4**实现。
#include<>
#include<>
#include<>
#include<>
char ch,mima1[40],x;
jiami()
int k,l;
char fn[20],fs[20];
file *f1,*f2,*f3;
printf("输入要打开的文件夹名称:")
scanf("%s",fn);
if((f1=fopen(fn,"r"))null)
printf("输入要保存的文件夹名称:")
scanf("%s",fs);
if((f2=fopen(fs, "w"))null)
if((f3=fopen(""w"))null)
printf("输入密码:")
scanf("%s",mima1);
if(fwrite(&mima1,sizeof(mima1),1,f3)==1)
l=strlen(mima1);
k=0;ch=fgetc(f1);
while(ch!=eof) /文件没有到底就继续 ,eof文件的底部*/
fclose(f1);
fclose(f2);
system("del ")
printf("加密成功,请在该软件目录找到您加密的文件。");
getch();
jiemi()
int k,l;
char fn[40],fs[40];
char ch,mima2[40],x;
char mima3[40];
file *f1,*f2,*f3;
printf("输入要解密的文件夹名称:")
scanf("%s",fn);
if((f1=fopen(fn,"r"))null)
printf("输入您要解密到的文件夹名称:")
scanf("%s",fs);
if((f2=fopen(fs,"w"))null)
asd:f3=fopen(""r");
fread(&mima3,sizeof(mima3),1,f3);
printf("输入密码:")
scanf("%s",mima2);
if(strcmp(mima2,mima3)==0)
l=strlen(mima2);
k=0;ch=fgetc(f1);
while(ch!=eof)
k=k%l;
fputc(ch^mima2[k],f2);
ch=fgetc(f1);
k++;
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计总结,课程设计报告
课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...