文件加密系统课程设计_第1页
文件加密系统课程设计_第2页
文件加密系统课程设计_第3页
文件加密系统课程设计_第4页
文件加密系统课程设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计综合课程设计报告 1 仲恺农业工程学院 课 程 设 计 文件加密 姓 名 孙浩斌 院 系 信息科学与技术学院信息科学与技术学院 专业年级 计算机 132 学 号 201320244207 指导教师 罗慧慧 职 称 学生 起止时间 2015 6 15 至 2015 6 24 仲恺农业工程学院教务处制 程序设计综合课程设计报告 2 目录目录 一 课程设计目的和要求 2 1 1 设计目的 2 1 2 设计要求 2 1 3 设计意义 3 二 课程设计任务内容 3 2 1 背景 3 2 2 功能需求 3 三 模块设计 4 3 1 系统模块 4 3 2 主函数流程图 5 3 3 函数流程图 6 3 3 1 加密函数流程图 6 3 3 2 解密函数流程图 7 3 3 3 显示函数流程图 8 3 3 4 统计单词流程图 9 四 软件使用说明 10 4 1 进入界面 10 4 2 加密文件 11 4 3 解密文件 11 4 4 显示文件 13 4 5 统计单词个数 13 五 课程设计心得与体会 14 5 1 关于对程序编写的心得 14 5 2 对于课程设计的心得体会 14 附录 1 参考文献 15 附录 2 程序代码 15 一 课程设计目的和要求 1 1 设计目的 有时我们有些资料不希望别人看到 最常用的方法就是加密 对给定的相关文 件进行加密可以对文件进行保护 可以防止某些重要信息不被别人所知道甚至窃取 对文件起到保护作用 可以方便用户使用某些只有自己能知道的信息 能够安全保 护文件的相关内容几信息不被外流 随着信息社会的到来 人们在享受信息资源所 带来的巨大的利益的同时 也面临着信息安全的严峻考验 信息安全已经成为世界 程序设计综合课程设计报告 3 性的现实问题 信息安全问题已威胁到国家的政治 经济 军事 文化 意识形态 等领域 同时 信息安全问题也是人们能否保护自己的个人隐私的关键 信息安全 是社会稳定安全的必要前提条件 通过课程设计 使学生了解高级程序设计语言的 结构 逐渐培养学生的编程能力 用计算机解决实际问题的能力 掌握基本的程序设 计过程和技巧 掌握基本的分析问题和利用计算机求解问题的能力 具备初步的高 级语言程序设计能力 为后续各门计算机课程的学习和毕业设计打下坚实基础 程序设计的主要任务是要求学生遵循软件开发过程的基本规范 运用结构化程序 设计的方法 按照课程设计的题目要求 分析 设计 编写 调试和测试程序及编 写设计报告 本课程设计的目标 1 巩固 高级语言程序设计 课程学习的内容和加深学生对基本知识的理解和掌握 2 掌握编程和程序调试的基本技能 3 掌握软件设计的方法 4 提高运用程序设计解决实际问题的能力 5 培养独立思考 综合运用所学有关相应知识的能力 6 强化上机动手编程能力 闯过理论与实践相结合的难关 1 2 设计要求 1 分析课程设计题目的要求 根据所要求的程序功能 画出程序的流程图 2 对系统功能模块进行分析 写出详细设计说明文档 3 对程序源代码进行调试与测试 使其能正确运行 4 设计完成的软件要便于操作和使用 5 设计完成后提交课程设计报告 1 3 设计意义 至今 密码技术是取得信息安全性最有效的一种方法 密码技术是信息安全的 核心技术 通过数据加密 人们可以有效地保证通信线路上的内容不被泄露 而且 还可以检验传送信息的完整性 进一步 密码技术可以应用于数字签名 身份认证 程序设计综合课程设计报告 4 和信息鉴定 这些应用对于资源存取控制以及其它安全措施是必须而且有效的 相 对于防病毒软件和防火墙软件来说 基于密码技术密码类产品 认证类产品份额相 对较小 但随着金融 电信 政府等行业信息化建设对于网络安全整体解决方案需 求的增加 将会有较大的增长 二 课程设计任务内容 2 1 背景 加密技术是电子商务采取的主要安全保密措施 是最常用的安全保密手段 利用技术手段把重要的数据变为乱码 加密 传送 到达目的地后再用相同或不 同的手段还原 解密 加密技术包括两个元素 算法和密钥 算法是将普通的 文本 或者可以理解的信息 与一窜数字 密钥 的结合 产生不可理解的密文 的步骤 密钥是用来对数据进行编码和解码的一种算法 在安全保密中 可通过 适当的密钥加密技术和管理机制来保证网络的信息通讯安全 2 2 功能需求 实现对文件的加密与解密 要求有图形用户界面 细则如下 1 能够对一个文件进行加密 2 加密后生成一个新文件 并且原文件删除 3 能将加密生成的文件还原成原文件 4 能够统计文件中单词个数 三 模块设计 3 1 系统模块 包括四个模块 加密模块 解密模块 显示模块 统计单词模块 程序设计综合课程设计报告 5 系统模块 加密 模块 解密 模块 显示 模块 统计 单词 模块 图 3 1 系统模块图 3 2 主函数流程图 在主函数中 利用 switch 语句实现对各个项目的函数调用 程序设计综合课程设计报告 6 case0 case1 case2 case3 case4 case5 退出 输入 加密 解密 显示 统计 break break break break break break Y Y Y Y Y Y N N N N N N 输入错误 重新输入 图 3 2 主函数流程图 程序设计综合课程设计报告 7 3 3 函数流程图 3 3 1 加密函数流程图 先读取原文件数据 将原文件称需经过特定条件转换后存放到另一个文件夹 加密过程 即将读取文件的字符根据加密公式转化为别的字符实现加密 但由于后 面的解密重要判断是否已经是加密文件 所以在文件末尾做记号标记 存到另一文 件夹后关闭文件 最后用 remove rename 两个函数实现删除源文件 将加密后文件 命名为原文件名 这样只剩下一个加密文件了 开始 结束 加密公示c 520 删除被加密的原文件 加密后的文件名更改为原文件名 是否继续加密文件 N Y 图 3 3 加密函数流程图 程序设计综合课程设计报告 8 3 3 2 解密函数流程图 先判断是否已经加密 这时要利用加密函数中使用的标识符 可以用 fseek 函数读 取文件末尾的标识符判断是否已加密 若是则解密 否则不解密 开始 结束 解密公示c 520 输入密码 解密后的文件名更改为原文件名 是否继续解密文件 N Y 密码是否正确 删除被解密的文件 Y N Z 3 图 3 4 解密函数流程图 程序设计综合课程设计报告 9 3 3 3 显示函数流程图 利用文件的操作 用 fgetc 函数从文件读取数据 再用 putchar 函数将数据显示 到屏幕 开始 输入要显示文件的名称 是否能打开 显示文件 继续显示文件 结束 Y N Y N 图 3 5 显示函数流程图 程序设计综合课程设计报告 10 3 3 4 统计单词流程图 从文件中读取字符串 存到数组中 接着从字符串中读取一个英文单词 出 来与要统计的单词比较 strcmp 函数 定义一个计数的变量实现记录单词出现的 次数 开始 结束 统计单词个数 是否能打开 键入要查找单词的文件名 Y N 图 3 6 统计单词流程图 程序设计综合课程设计报告 11 四 软件使用说明 4 1 进入界面 输入 0 5 实现不同功能 图 4 1 若输入错误 重新输入 图 4 2 程序设计综合课程设计报告 12 4 2 加密文件 输入要加密文件名 文档内容 图 4 3 图 4 4 图 4 5 4 3 解密文件 输入进入系统密码 图 4 6 程序设计综合课程设计报告 13 图 4 7 图 4 8 图 4 9 图 4 10 程序设计综合课程设计报告 14 4 4 显示文件 图 4 11 4 5 统计单词个数 图 4 12 程序存在问题 1 没有独立的磁盘管理功能 没有能从磁盘开辟空间 对文件进行定 义 分区存储以及管理 2 加密解密方式过于简单 并没有实现完全的加密封锁 虽然进行了转码 能避免 重要信息直接以明文的方式呈现 但是假如有入侵者获取了控制权 虽然他不能够 获取文件的信息 但是他可以把这个文件直接删除 或者做一些损坏性的操作 这 堆用户来说依然是不安全的 程序改进方案 1 本程序采用的按字符异或加密的算法是一种比较简单的加密算法 安全性较 差 若对文件保密性要求比较高 则可采用一些复杂的算法进行加密 2 本程序入口只能输入要加密或解密的目标文件名 而对加密或解密后的文件 程序设计综合课程设计报告 15 不能自定义 只能用程序提供的 anma txt 和 mingma txt 存放文件 这样 当对同一 目录下多个文档加密时 加密解密操作后的文件会替换原来的文件 造成数据丢失 五 课程设计心得与体会 5 1 关于对程序编写的心得 这个程序看起来挺简单的 但对于对 C 语言还是初学者的我 还是显得有些难 度的 在编写的过程中 由于粗心经常出现一些比较简单的错误 比如遗漏逗号 双 引号 小括号 以及项目名称 从而导致出现乱码 C 编译的程序对语法检查并不 象其它高级语言那么严格 这就给编程人员留下 灵活的余地 但还是由于这个灵 活给程序的调试带来了许多不便 尤其对初学 C 语言的人来说 经常会出一些连自 己都不知道错在哪里的错误 看着有错的程序 不知该如何改起 但是 通过上网 查询还有在老师 学长和同学的帮助下 我最终还是完成了程序的编写 5 2 对于课程设计的心得体会 作为计算机类本科生教学的主要基础课之一 课程紧密结合计算机课程类的专 业特点 系统介绍操作系统的基本知识 基本组成 体系结构和工作模式 从而使学生能 较清楚地了解操作系统的知识 建立起系统的概念 这次操作系统课程设计用时两个个星期 在整整两个一星期的日子里 可以 说得是大家积极努力准备 同时可以学到很多很多的的东西 不仅可以巩固了以前 所学过的知识 而且学到了很多在书本上所没有学到过的知识 以前 在写一个程 序的时候 我总是不细心 怕很浪费时间 但是 这次课程设计完全改变了我以前 的那种错误的认识 以前我接触的那些程序都是很短 很基础的 但是在课程设计 中碰到的那些需要很多代码才能完成的任务 在做设计的过程中 我们每一步要做 什么 每一步要完成什么任务都有一个很清楚的思路 其次 以前对于编程工具的使用还处于一知半解的状态上 但是经过一段上机 的实践 对于怎么去排错 查错 怎么去看每一步的运行结果 确保程序的正确性 程序设计综合课程设计报告 16 上都有了很大程度的提高 通过这次课程设计使我懂得了理论与实际相结合是很重要的 只有理论知识 是远远不够的 只有把所学的理论知识与实践相结合起来 从理论中得出结论 才 能真正为社会服务 从而提高自己的实际动手能力和独立思考的能力 在设计的过 程中遇到问题 可以说得是困难重重 这毕竟第一次做的 难免会遇到过各种各样 的问题 同时在设计的过程中发现了自己的不足之处 对以前所学过的知识理解得 不够深刻 掌握得不够牢固 这次课程设计终于顺利完成了 在设计中遇到了很多编程问题 最后在同学 和老师的辛勤指导下 终于游刃而解 附录 1 参考文献 1 谭浩强 C 程序设计 清华大学出版社 2005 年 7 月第三版 2 谭浩强 C 程序设计 清华大学出版社 2004 年 6 月第一版 3 谭浩强 张基温 唐永炎 编著 C 语言程序设计教程 北京 高等教育出版 社 1992 4 操作系统教程 费祥林 骆斌 附录 2 程序代码 include include include include include define M 20 宏定义文件名字符串数组大小 define N 20 宏定义解密码字符串数组大小 define W 20 宏定义单词字符串数组大小 define F 1000 宏定义文件读取字符串数组大小 define E 3 宏定义解密系统密码输入次数 char mina ulinchen 初始化解密系统进入密码 程序设计综合课程设计报告 17 void menu void 主菜单 void shuru void 输入 void jiami void 加密 函数原型 void jiemi void 解密 void show void 显示 void count void 统计单词数 int judge void 是否继续判断函数 int main char num while 1 menu 显示主菜单 scanf c 输入数字 0 5 fflush stdin 清除数据流 防止恶意输入字符串 直接操作以第一个字符后面字符串为名的文 件 switch num 选择语句 case 0 选择 0 printf n exit 0 case 1 选择 1 system cls shuru 输入 printf n 按任意键返回主菜单 break case 2 选择 2 system cls jiami 加密 printf n 按任意键返回主菜单 break case 3 选择 3 system cls jiemi 解密 printf n 按任意键返回主菜单 break case 4 选择 4 system cls show 显示 printf n 按任意键返回主菜单 break case 5 选择 5 system cls 程序设计综合课程设计报告 18 count 统计单词数 printf n 按任意键返回主菜单 break default 输入错误 printf n t t 输入错误 请重新输入 按任意键返回主菜单 break getch 等待输入 是界面停留 fflush stdin 清除数据流 system cls 清屏 void menu void 主菜单函数 printf n n printf t n printf t n printf t 1 输入 2 加密 3 解密 4 显示 5 统计 0 退出 n printf t n printf t n printf n n printf t0 退出系统 n printf t1 输入信息 并写入数据文件 n printf t2 对给定的文件进行加密 n printf t3 对给定的文件进行解密 n printf t4 显示文本文件的内容 n printf t5 统计某单词在文件中出现的次数 n printf n n printf t 请选择 0 5 void shuru void 输入函数 FILE fp int x 1 定义 x 1 输入 char ch fname M while x printf n n 键入要输入信息的文件名 程序设计综合课程设计报告 19 scanf s fname 输入文件名 if fp fopen fname w NULL 若不能打开 printf 存储空间不足 n exit 0 else printf 请输入文档的内容 以 Ctrl z 结束 n fflush stdin while ch getchar EOF fputc ch fp fclose fp printf n 文档输入并保存成功 printf 继续创建文件并输入信息 按 Y 继续 x judge void jiami void 加密函数 FILE fp fp1 char c pd fname M int x 1 while x printf n n 键入要加密的文件名称 scanf s fname if fp fopen fname r NULL printf n 此文件未能打开 重新输入 按 Y fflush stdin x judge else if fseek fp long sizeof char SEEK END pd fgetc fp 判断文件是否已进行加 密步骤 if pd printf n 文件已使用本程序加密 printf 重新输入要加密的文件名 按 Y 程序设计综合课程设计报告 20 x judge fclose fp else rewind fp if fp1 fopen jiami txt w NULL printf 存储空间不足 n exit 0 printf n 加密后的文档 n n while c fgetc fp EOF fputc c 520 fp1 加密公式 c 520 putchar c 520 fclose fp fclose fp1 fp1 fopen jiami txt a fputc fp1 fclose fp1 remove fname 删除被加密的原文件 rename jiami txt fname 加密后的文件名更改为 原文件名 printf n n 文档加密并保存成功 printf 继续加密文件 按 Y 继续 x judge void jiemi void 解密函数 FILE fp fp1 char c pd fname M mm N mima N int x 1 y 1 z 0 while y system cls printf n n 请输入进入解密系统的密码 scanf s mm 程序设计综合课程设计报告 21 if strcmp mm mima 0 验证密码 判断字符串是否相等 y 0 while x fflush stdin printf n n 键入要解密的文件名称 scanf s fname if fp fopen fname r NULL printf n 此文件未能打开 重新输入 按 Y fflush stdin x judge else if fseek fp long sizeof char SEEK END pd fgetc fp if pd printf n 文件未曾使用本程序加密 printf 重新输入要加密的文件名 按 Y x judge fclose fp else rewind fp if fp1 fopen jiemi txt w NULL printf 存储空间不足 n exit 0 printf n 解密后的文档 n n while c fgetc fp fputc c 520 fp1 putchar c 520 x 0 fclose fp fclose fp1 remove fname 删除被解密的文件 rename jiemi txt fname 解密后的文件名更改 程序设计综合课程设计报告 22 为原文件名 printf n n 文档解密并保存成功 printf 继续解密文件 按 Y 继续 x judge else printf n n 密码输入有误 n printf n 重新输入密码 按 Y 重新输入 n y judge z if z E printf n 对不起 您输入错误次数太多 请仔细回想密码 n y 0 void show void 显示函数 FILE fp char fname M int x 1 while x printf n n 键入要显示的文件名称 scanf s fname if fp fopen fn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论