欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    操作系统课程设计文件加密存储.doc

    • 资源ID:2392236       资源大小:44.50KB        全文页数:12页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统课程设计文件加密存储.doc

    目录一、 设计简介课程设计题目课程设计小组成员二、 设计目的三、 设计意义四、 设计要求五、 设计内容六、 程序流程图七、 程序源代码八、 程序运行结果分析九、 系统调用十、 心得体会参考文献一、设计简介:设计课题:文件加密存储二、设计目的:有时我们有些资料不希望别人看到,最常用的方法就是加密。对给定的相关文件进行加密可以对文件进行保护,可以防止某些重要信息不被别人所知道甚至窃取。对文件起到保护作用,可以方便用户使用某些只有自己能知道的信息,能够安全保护文件的相关内容几信息不被外流。随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。信息安全已经成为世界性的现实问题,信息安全问题已威胁到国家的政治、经济、军事、文化、意识形态等领域,同时,信息安全问题也是人们能否保护自己的个人隐私的关键。信息安全是社会稳定安全的必要前提条件。三、设计意义:至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的核心技术。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。四、设计要求:利用文件系统的系统调用编程对文件的内容进行加、解密。要求程序从环境的命令行携带4个参数。第一是文件名,第二个是操作方式,第三个是密钥,第四个是加密钥循环使用长度。其中后两个参数是可以忽略,但对忽略的情况要提供缺省值。要求最后实现对文件的加密转储,或通过改道的办法进行转储。对于已加密的文件可以进行解密显示或解密后转储。建议加密过程使用按字符进行异或的方式处理,你也可提供自己的加密方式。五、设计内容:加密技术是依靠加密算法对原始文档进行编码形成密文从而达到加密目的。加密算法就是通过一组密钥对原始信息(明文)进行一系列的数学运算得到另外一组信息(密文),这就是加密过程。采用同样的算法和同样的密钥,可以从密文算回原始信息(明文),这就是解密过程。本设计采用按字符异或的加密算法对文档进行加密形成密文,而后,用同样的算法配合密钥和密钥循环长度可以对密文进行解密。程序从命令行携带文件名(in)、操作方式(Op)、密钥(pwd)、加密钥循环使用长度(length)四个参数,其中pwd和length可以忽略,程序为忽略的情况提供了缺省值。若命令行带入的参数少于两个,即没有参数或只有第一个参数,程序提供了输入块对四个参数进行输入。六、程序流程图:开始程序输入命令行参数argc<3从键盘录入各个参数真假argc=3strcpy(in,argv1); strcpy(Op,argv2); strcpy(pwd,"00000000"); length=8;真真假假argc=4strcpy(in,argv1); strcpy(Op,argv2); strcpy(pwd,argv3); length=(int)argv4-48;strcpy(in,argv1); strcpy(Op,argv2); strcpy(pwd,argv3); length=8;假strcmp("jiami",Op)=0真假strcmp("jiemi",Op)=0真jiami(in,pwd,length);Input error!jiemi(in,pwd,length);结束七、程序源代码:#include<stdio.h>#include<stdlib.h>#include<string.h>void jiami(char *in,char *pwd,int length);/*函数声明*/void jiemi(char *in,char *pwd,int length);/*函数声明*/int main(int argc,char *argv) char in30;/*需要加密或解密的文件名*/ int length;/*加密钥循环使用长度*/ char pwd8;/*加密钥*/ char Op10;/*操作方式*/if(argc<3) /*如果从命令行带入的参数少于两个,刚提示输入*/ printf("You must enter filename and Operation mode!n"); printf("Input filename:n"); scanf("%s",in); printf("Input Operation mode:n"); scanf("%s",Op); printf("Enter password:n"); scanf("%s",pwd); printf("Input length:n"); scanf("%d",&length);else if(argc=3) /*命令行带两个参数,后两个忽略,则给后两个参数提供缺省值pwd="00000000",length=8*/ strcpy(in,argv1); strcpy(Op,argv2); strcpy(pwd,"00000000"); length=8; else if(argc=4)/*若从命令行带入三个参数,刚对length提供缺值8*/ strcpy(in,argv1); strcpy(Op,argv2); strcpy(pwd,argv3); length=8; else strcpy(in,argv1); strcpy(Op,argv2); strcpy(pwd,argv3); length=(int)argv4-48; if(strcmp("jiami",Op)=0) jiami(in,pwd,length);/*调用加密*/else if(strcmp("jiemi",Op)=0) jiemi(in,pwd,length);/*调用解密*/ else printf("Input error!");void jiami(char *in,char *pwd,int length)/*加密*/ FILE *fp1,*fp2; register char ch; int j=0; fp1=fopen(in,"rb");/*为输入打开一个二进制文件*/ if(fp1=NULL) printf("Cannot open in-file!n"); exit(1); fp2=fopen("encryption_file","wb");/*为读写建立一个新的二进制文件*/ if(fp2=NULL) printf("Cannot open or create output-file!n"); exit(1); ch=fgetc(fp1); while(!feof(fp1) fputc(chpwdj>=length?j=0:j+,fp2);/*按字符异或加密*/ ch=fgetc(fp1); fclose(fp1); fclose(fp2);void jiemi(char *in,char *pwd,int length) /*解密*/ FILE *fp1,*fp2; register char ch;/*寄存器变量ch */ int j=0; fp1=fopen(in,"rb");/*为输入打开一个二进制文件*/ if(fp1=NULL) printf("Cannot open in-file!n"); exit(1); fp2=fopen("crack_file.txt","wb");/*为读写建立一个新的二进制文件*/ if(fp2=NULL) printf("Cannot open or create output-file!n"); exit(1); ch=fgetc(fp1); while(!feof(fp1) fputc(chpwdj>=length?j=0:j+,fp2);/*按加密方法进行解密*/ ch=fgetc(fp1); fclose(fp1); fclose(fp2);八、程序运行结果分析:cc jiami.c编译程序,1、用./a.out(不带参数或参数个数小于两个)运行程序,程序提示需要输入文件名和操作方式,按提示进行参数输入,程序运行,按操作要求对目标文件进行加密解密操作,若文件不存在或打开失败,则操作失败,给出Cannot open in-file! 提示,程序结束;2、用./a.out 文件名 操作方式(带两个参数) 运行程序,忽略后两个参数,程序为后两个参数提供缺省值,密钥为“00000000”,循环长度为8;3、用./a.out 文件名 操作方式 密钥(带三个参数)运行程序,则程序为最后一个参数密钥循环使用长度设置缺省值8;4、用./a.out 文件名 操作方式 密钥 加密钥循环使用长度(带四个参数),程序按用户所提供的参数值运行;不管用哪种方式运行程序,若给出的文件不存在或打开失败,则操作(加密或解密)失败; 加密或解密时,若密文文件encryption_file或解密后的文档crack_file.txt已存在,则程序会删除原有文件用新文件替换; 加密过程采用按字符异或的方式处理。程序改进方案:1、本程序采用的按字符异或加密的算法是一种比较简单的加密算法,安全性较差,若对文件保密性要求比较高,则可采用一些复杂的算法进行加密。2、本程序入口只能输入要加密或解密的目标文件名,而对加密或解密后的文件不能自定义,只能用程序提供的encryption_file和crack_file.txt存放文件,这样,当对同一目录下多个文档加密时,加密解密操作后的文件会替换原来的文件,造成数据丢失;九、系统调用:int main(int argc,char *argv)argc 是外部命令参数的个数,argv 存放各参数的内容.在运行程序以后,操作系统会自动将参数传给你。例如编译好的程序叫做program.exe 你运行program a b 这个时候,argc = 3 argv0 = "program" argv1 = "a" argv2 = "b"fopen ( string filename, string mode)fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式); 其中,“文件指针名”必须是被说明为FILE 类型的指针变量; “文件名”是被打开文件的文件名;“使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。文件使用方式意义:“rt” 只读打开一个文本文件,只允许读数据 “wt” 只写打开或建立一个文本文件,只允许写数据 “at” 追加打开一个文本文件,并在文件末尾写数据 “rb” 只读打开一个二进制文件,只允许读数据 “wb” 只写打开或建立一个二进制文件,只允许写数据“ab” 追加打开一个二进制文件,并在文件末尾写数据 “rt+” 读写打开一个文本文件,允许读和写 “wt+” 读写打开或建立一个文本文件,允许读写 “at+” 读写打开一个文本文件,允许读,或在文件末追加数据“rb+” 读写打开一个二进制文件,允许读和写“wb+” 读写打开或建立一个二进制文件,允许读和写“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据fputc(char ch,FILE *fp);作用: 把一个字符写到磁盘文件上去,即将字符ch输出到fp所指向的文件中去。返回值: 成功:返回值就是输出的字符; 失败:返回EOF(-1)。fgetc(FILE *fp);作用:从指定的文件读入一个字符,即从fp所指向的文件中读入一个字符。返回值: 成功:返回值所得到的字符; 失败:返回EOF(-1)。feof(FILE *fp)作用:检查文件是否结束。返回值: 遇文件结束符返回非零值,否则返回0心得体会作为计算机类本科生教学的主要基础课之一,课程紧密结合计算机课程类的专业特点,系统介绍操作系统的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解操作系统的知识,建立起系统的概念。 这次操作系统课程设计用时一个星期,在整整一星期的日子里,可以说得是大家积极努力准备,同时可以学到很多很多的的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前,在写一个程序的时候,我总是不细心,怕很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,确保程序的正确性上都有了很大程度的提高。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在同学和老师的辛勤指导下,终于游刃而解。参考文献:1、谭浩强·C程序设计(第三版)·清华大学出版社,20052、严蔚敏,吴伟民编著·数据结构(C语言版)·清华大学出版社,20073、张尧学,史美林,张高编著·计算机操作系统教程(第3版)·清华大学出版社,2006

    注意事项

    本文(操作系统课程设计文件加密存储.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开