ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:207.65KB ,
资源ID:30626280      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30626280.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统文件加密系统课程设计报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统文件加密系统课程设计报告.docx

1、操作系统文件加密系统课程设计报告河南城建学院操作系统原理课程设计报告书班 级: 0834131 专 业: 信息管理与信息系统(本科)课程名称: 操作系统原理 指导教师: 魏新红 设计题目: 文件加密储存 学 号: 姓 名: 同组人员: 计算机科学与工程学院2015年12月 前言 随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密算法有多种,本程序设计对文件的加密使用的是最基础的异或加密算法与防射函数加密算法共同对文件进行双层加密。加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段

2、,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一窜数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全.C语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。本程序充分利用C语言的特点,针对当下社会比较重视的文件加密,设计了本程序。使用本程序可以对txt,word等多种文件进行加密解密,使用便捷实用,功能完善,

3、满足了用户对文件安全性的需求。 一、系统环境 Windows平台下安装VMware虚拟机来搭建Linux平台,操作系统环境是Red Hat Linux 9,语言开发环境是Linux的GNU C或C+。 硬件环境:计算机一台,局域网环境软件环境:虚拟机下的Red Hat Linux 92、设计目的学习计算机软件技术,特别是计算机操作系统技术,除了需要刻苦努力外,还需要掌握软件和操作系统的原理与设计技巧。如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之外,最好的方法恐怕就是在实践中练习。例如,自己设计一个小型操作系统,多使用操作系统,多阅读和分析操作源代码等。但由于我们的条件和学时有

4、限,在理论学习过程中没有给同学们提供更多的实验机会。本操作系统课程设计,是给同学们提供一个集中实验的机会。本次课程设计文件加密存储要实现以下要求: (1)利用文件系统的系统调用编程对文件的内容进行加、解密; (2)要求程序从环境的命令行携带4个参数。第一个是文件名,第二个是操作方式,第三个是密钥,第四个是加密钥循环使用长度。其中后两个参数是可以忽略,但对忽略的情况要提供缺省值; (3)要求最后实现对文件的加密转储,或通过改道的办法进行转储。对于已加密的文件可以进行解密显示或解密后转储。形成加密或解密文件后要删除原来的文件; (4)建议加密过程使用按字符进行异或的方式处理,也可以是仿射加密方式,

5、比如把所有的字符做一个平移变换:A- A+C(A为任意字母表中的字母,C为常数,为了防止越界或溢出,可以改造其为A- (A+C)MOD 256),这里要提醒的是,要注意逆变换; (5)设计者也可以提供自己的加密方式。三、总体设计 实现对文件的加密与解密,要求有图形用户界面。细则如下 1.能够对一个文件进行加密; 2.加密后生成一个新文件为“anma”,并删除源文件; 3.能将加密生成的文件还原成原文件名为“mingma”。NNNNNNNNN N四、详细设计4.1加密算法本设计采用按字符异或与防射加密函数联合的加密算法对文档进行加密形成密文,而后,用同样的算法配合密钥和密钥循环长度可以对密文进行

6、解密。程序从命令行携带文件名(in)、操作方式(Op)、密钥(pwd)、加密钥循环使用长度(length)四个参数,其中pwd和length可以忽略,程序为忽略的情况提供了缺省值。若命令行带入的参数少于两个,即没有参数或只有第一个参数,程序提供了输入块对四个参数进行输入。4.2系统调用int main(int argc,char *argv)argc 是外部命令参数的个数,argv 存放各参数的内容.在运行程序以后,操作系统会自动将参数传给你。例如编译好的程序叫做program.exe 你运行program a b 这个时候,argc = 3 argv0 = program argv1 = a

7、 argv2 = bfopen ( string filename, string mode)fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式); 其中,“文件指针名”必须是被说明为FILE 类型的指针变量; “文件名”是被打开文件的文件名;“使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。文件使用方式意义:“rt” 只读打开一个文本文件,只允许读数据 “wt” 只写打开或建立一个文本文件,只允许写数据 “at” 追加打开一个文本文件,并在文件末尾写数据 “rb” 只读打开一个二进制文件,只允许读数据 “wb” 只写打

8、开或建立一个二进制文件,只允许写数据“ab” 追加打开一个二进制文件,并在文件末尾写数据 “rt+” 读写打开一个文本文件,允许读和写 “wt+” 读写打开或建立一个文本文件,允许读写 “at+” 读写打开一个文本文件,允许读,或在文件末追加数据“rb+” 读写打开一个二进制文件,允许读和写“wb+” 读写打开或建立一个二进制文件,允许读和写“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据fputc(char ch,FILE *fp) 作用: 把一个字符写到磁盘文件上去,即将字符ch输出到fp所指向的文件中去。 返回值:成功,返回值就是输出的字符; 失败,返回EOF(-1)。fg

9、etc(FILE *fp) 作用:从指定的文件读入一个字符,即从fp所指向的文件中读入一个字符。 返回值:成功,返回值所得到的字符; 失败,返回EOF(-1)。feof(FILE *fp) 作用:检查文件是否结束。 返回值:遇文件结束符返回非零值,否则返回0。五、调试与测试1新建文件和程序2对文件进行加密加密后产生一个新的文件“anma”3对文件进行解密运行后产生一个新的文件“mingma” 六、遇到的问题及解决方案1.linux系统下如何进行编程以及如何运行程序代码 解决方法:通过网上XX以及从图书馆借阅的资料逐渐了解并认识Linux系统,从而进一步在Linux环境下进行程序设计2.在陌生环

10、境下如何确保程序的正确性 解决方案:先把在Linux系统下用GUNC编写的程序在vc+6.0环境下编译运行,确保程序可以进行调试,然后再移植到Linux环境中。七、程序源代码#include#include#includevoid 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; /*加密钥循环使用长度*/ cha

11、r pwd8; /*加密钥*/ char Op10; /*操作方式*/ if(argc=length-1?j=0:j+,fp2); /*按加密方法进行解密*/ ch=fgetc(fp1); fclose(fp1); remove(in); fclose(fp2);void jiemi(char *in,char *pwd,int length) /*解密*/ FILE *fp1,*fp2; char ch; int j=0;int i=0; int a99; fp1=fopen(in,rb); /*为输入打开一个二进制文件*/ if(fp1=NULL) printf(Cannot open i

12、n-file!n); exit(1); fp2=fopen(mingma.txt,wb); /*为读写建立一个新的二进制文件*/ if(fp2=NULL) printf(Cannot open or create output-file!n); exit(1); ch=fgetc(fp1); while(!feof(fp1) ch=chpwdj=length-1?j=0:j+; ai=ch-a; / 字符转换为数字 ai=(19*ai+16)%26;/ 仿射解密函数 ch=ai+a; / 数字转换为字符 i+; fputc(ch,fp2); ch=fgetc(fp1); fclose(fp1)

13、; remove(in); fclose(fp2); 心得体会 通过此次课程设计,使我更加扎实的掌握了有关C方面的知识与Linux下C编程的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。 这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后不断实验和查找资料后,终于游逆而解。在今后社

14、会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可! 这次课程,给我很多专业知识以及专业技能上的提升,同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了Linux下C的编程方法和测试;熟悉了Linux的编程环境以及相关工具的使用。 我认为,在这次的课程设计中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们

15、学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。 回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。 此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。参考文献1、黄丽娜,管佩森,陈彩可.Red HAT lINUX 9.0基础教程.清华大学出版社,2004.42、潘景昌,刘杰.操作系统实验教程.清华大学出版社,2010.113、汤小丹,梁红兵,哲凤屏,汤子瀛.计算机操作系统.西安电子科技大学,2014.5

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1