版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文件加密解密系统设计内容摘要:作为保障数据数据平安的一种方式,对于信息的加密技巧起源于欧洲,最广为人知的编码机器是德国的GermanEnigma,在第二次世界大战中德国人利用它创立了加密信息系统,从而解决军事信息的保密通讯问题。随着信息技术的开展,人们的文本文件需要更简便、平安和可靠的加密管理模式。设计一个基于c语言的文本文件加密及解密软件,可以方便对文本文件的加密与解密。本设计实现了文本文件的解密及解密,运行软件之后只需输入任意一个文本文件的文件名及后缀名即可对该文本文件进行加密或解密操作。本设计的加密与解密系统,使用了面向各类文件的方法,运用MicrosoftVisualC++6.0实现具有加密、解密、帮助信息、读取文本文件、显示结果、退出等功能的文件加密与解密系统。关键词:C语言程序设计密码文件加密与解密FileencryptionanddecryptionsystemdwsignAbstract:Asawayofdata,datasecurity,forinformationencryptiontechniqueoriginatedinEurope,themostwellknownofthecodingmachineisGermanGermanEnigma,ChinaandGermanyduringthesecondworldwarpeopleuseittocreatetheencryptedinformationsystem,tosolvetheproblemofmilitaryinformationconfidentialcommunication.Withthedevelopmentofinformationtechnology,people'stextfilesthatneedtobemoreconvenient,safeandreliableencryptionmanagementmode.Designatextfileencryptionanddecryptionsoftwarebasedonclanguage,canbeconvenienttotextfileencryptionanddecryption.Thisdesignimplementsthedeclassificationofatextfileanddecryption,runningsoftwaresimplytypeanytextfileafterfilenameandextensioncanencryptordecryptoperationonthetextfilesThisdesignofencryptionanddecryptionsystem,usingthemethodforallkindsofdocuments,UsingMicrosoftVisualc++6.0Implementedwithencryption,decryption,helpinformation,readsthetextfile,displaytheresults,exitfunctionsuchasfileencryptionanddecryptionsystem.Keyword:ClanguageProgramdesignCodeFileencryptionanddecryption
目录前言 11设计目的 11.1为什么要对文件进行加密和解密? 11.2文件的加密解密 11.2.1移位加密和解密 11.2.2二进制加密和解密 22C语言 22.1什么是C语言? 22.2C语言开展历史简单介绍 22.3用C语言程序设计的优点 23设计流程图 33.1主函数main()执行流程图 33.2加密前的文件内容 43.3主菜单 43.4加密解密操作 43.4.1选择移位加密解密输入2,输入1加密 4选择移位加密解密输入2,输入2解密 5选择二进制加密解密输入3,输入1加密 6选择二进制加密解密输入3,输入2解密 63.5退出系统 74结束语 7附录 8参考文献 15文件加密解密系统设计前言本程序旨在训练根本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种根本操作。本程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,能对C语言的文件操作有一个更深刻的了解,掌握利用数组存储结构实现文件加密解密的原理,为进一步开发出高质量的加密解密系统打下坚实的根底。1设计目的随着科技的进步和信息产业的飞速开展,文件的保密也成为人们生活中所必须的,本C++文件加密解密主要是利用计算机进行文件的加密和解密操作,根源程序包涵移位加密解密和二进制加密解密。本程序是利用指针实现此文件加密解密系统。1.1为什么要对文件进行加密和解密?随着社会的开展人们把隐私保护和平安的设置看得越来越重要。其中文件的加密、解密就是一种最简单而有效的保护方式,它在我们的日常生活中扮演着重要的角色。1.2文件的加密解密现在主要有两种加密方式,一种是移位加密解密,第二种是二进制加密解密。它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,称加密算法使用起来简单快捷、密钥较短、且破译困难。移位加密和解密加密的时候运用C语言知识,将所遇到的字符进行移位操作。解密的时候,根据加密的方法,反过来解密,即将加密字符进行移位操作。学会运用文件,对任意文件进行加密解密操作,先翻开文件进行加密解密操作,还要将文件显示出来,最后关闭文件。二进制加密和解密加密的时候运用C语言知识,将所遇到的字符进行移位操作。解密的时候,根据加密的方法,反过来解密,即将加密字符进行移位操作。学会运用文件,对任意文件进行加密解密操作,先翻开文件进行加密解密操作,还要将文件显示出来,最后关闭文件。2C语言2.1什么是C语言?C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。[1]C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。[2]C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。[3]2.2C语言开展历史简单介绍早期的操作系统等系统软件主要是用汇编语言编写的,依赖于计算机硬件,程序的可读性和可移植性都比拟差。为了提高可读性和可移植性,最好改用高级语言,但一般高级语言难以实现汇编语言的某些功能,而汇编语言可以直接对硬件进行操作,人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种情况下应运而生了,之后成为国际上广泛流行的计算机高级语言。它适合于作为系统描述语后来,C语言屡次作了改良,但主要还是在贝尔实验室内部使用。直到1975年UNIX第6版公布后,C语言的突出优点才引起人们普遍注意。
言,即用来写系统软件,也可用来写应用软件。[4]2.3用C语言程序设计的优点C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的根本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最根本的工作单元。[5]C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。[6]C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。[7]本程序选择C语言编写文件加密与解密源程序是因为C语言编程易操作更简单,更容易实现,而且易修改,运行方法也很简单。根据每条语句后面的注解能够让人一目了然,更能让不懂C语言的人也能轻易运行程序3设计流程图3.1主函数main()执行流程图如图1所示。输入1输入1图1文件加密解密系统执行主流程如图1所示。在判断键值时,有效的输入为1-3之间的任意数值,其他输入都被视为错误按键。假设输入为1,那么调用exit(0)函数执行退出操作;假设选择2,那么调用yiwei()函数执行移位加密解密操作;假设选择3,那么调用erjinzhi()函数,执行二进制加密解密操作;假设输入为1-3之外的值,那么给出按键错误的提示”Inputerror,Pleaseinputagain!”,并重新让你重新键入值。3.2加密前的文件内容利用源程序对纯英文字母的文件“hao.txt”和“mei.txt”进行加密和解密运算,截图如下:“hao.txt”的内容如图2所示,“mei.txt”的内容如图3所示。图2图33.3主菜单主菜单界面如图4所示。图43.4加密解密操作选择移位加密解密输入2,输入1加密输入翻开文件文件名称操作〔完整路径〕:hao.txt再输入密钥3,输入保存解密后文件的名称〔完整路径〕x.txt操作如图5所示。图5选择移位加密解密输入2,输入2解密输入翻开文件文件名称操作〔完整路径〕:x.txt再输入密钥3,输入保存解密后文件的名称〔完整路径〕hao.txt操作如图6所示。图63.4.3选择二进制加密解密输入3,输入1加密输入翻开文件文件名称操作〔完整路径〕:mei.txt再输入密钥3,输入保存解密后文件的名称〔完整路径〕x.txt操作如图7所示。图7选择二进制加密解密输入3,输入2解密输入翻开文件文件名称操作〔完整路径〕:x.txt再输入密钥3,输入保存解密后文件的名称〔完整路径〕mei.txt操作如图8所示。图83.5退出系统输入2,退出系统,操作如图9所示。图94结束语通过这次课程设计,我学到了许多东西,在完成设计的过程中也遇到了许多的问题,通过不断的查资料,和向老师同学的请教,使得大局部问题得到了解决。并且解决问题的过程中我也学到了很多东西。在设计过程中,主要遇到的问题就是文件的操作问题,以前学习的时候,对文件的操作掌握的不是很好,但在做课程设计时会常常用到,经认真看书后解决了这个问题。最大问题是密码太多时会出现乱码的问题,后用while〔〕函数解决了。虽然在课程设计过程中修改了很屡次,但程序还是很不完美,有一些问题未能解决。比方说程序的界面不够美观,不够人性化;在对密码的处理上也不好,只能对英语文本进行加密和解密操作也是很大的问题,我将在以后的时间里继续努力,不断充实自己。希望经过以后的学习也能够对中文文档进行加密和解密操作。附录源程序:#include<stdio.h>#include<stdlib.h>#defineM1000//预设一个指定文件大小的数字M,方便以后改变voidyiwei();intmain(){ printf("\n$********本程序只能对英文文本进行加密解密操作,如有不便尽请谅解*****$");//欢送界面 printf("\n"); printf("\n$*******文件移位加密与解密、二进制加密与解密*****$");//软件信息 printf("\n"); printf("\n$*******2011级通信工程学院*****$");//欢送界面 printf("\n"); printf("\n$*******通信四班:朱彬文张一帆通信二班:张婷*****$");//欢送界面 printf("\n"); printf("\n$*******欢送使用本软件,祝您使用愉快*****$");//欢送界面 printf("\n"); printf("\n按enter键进入主菜单"); getchar();//输入任意字符后进行下一操作 system("cls");//清屏操作 printf("\n$*************本程序只能对英文文本进行加密解密操作,如有不便尽请谅解****$");//欢送界面 printf("\n"); printf("\n$*************1:退出程序输入***********$");//欢送界面 printf("\n"); printf("\n$*************2:移位加密与解密输入***********$");//欢送界面 printf("\n");printf("\n$*************3:二进制加密与解密输入***********$");//欢送界面 printf("\n"); printf("\n$*************欢送使用本软件,祝您使用愉快***********$");//欢送界面 printf("\n请输入〔1-3〕;"); switch(getchar()) { case'1':exit(0);printf("byebye");break; case'2':yiwei();break; case'3':erjinzhi();break; } return0;}/*****************主函数结束*********************//***********调用移位加密解密函数*****************/voidyiwei(){ FILE*infile=NULL;//输入文件指针 FILE*outfile=NULL;//输出文件指针 intkey;//密钥 intoperation=0;//操作类型,加密1,解密2 charfilename[100],tempfile[1000],data; while(1) { infile=outfile=NULL; operation=0; //选择操作类型 while(!(operation==1||operation==2)) { printf("请选择【加密1解密2】:"); scanf("%d",&operation); //处理非法输入 if(!(operation==1||operation==2)) printf("选择有误,请重新选择!\n"); } //翻开输入文件 while(infile==NULL) { printf("\n输入要翻开的文件文件名称(完整路径):"); scanf("%s",filename); //以只读方式翻开文件流 infile=fopen(filename,"r"); //翻开文件流失败,重新输入文件名 if(infile==NULL) printf("\n无法翻开文件,请检查文件是否存在后重新输入!"); } printf("\n输入密钥:"); scanf("%d",&key); //输入密钥 if(operation==1) printf("\n输入保存加密后文件的名称(完整路径):"); else printf("\n输入保存解密后文件的名称(完整路径):"); scanf("%s",filename); //以读写方式翻开输出文件 outfile=fopen(filename,"w+"); while((data=fgetc(infile))!=EOF)//逐个字符读出输入文件的内容 { if(operation==1)//加密 fputc(data+key,outfile); else//解密 fputc(data-key,outfile); } //输出加密/解密的过程 if(operation==1) printf("\n加密过程:"); else printf("\n解密过程:"); rewind(infile);//文件指针回到文件开始处 while((data=fgetc(infile))!=EOF)//逐个字符读出输入文件的内容 printf("%c",data); printf("-->"); rewind(outfile); while((data=fgetc(outfile))!=EOF)//逐个字符读出输入文件的内容 printf("%c",data); printf("\n\n"); fclose(infile);//关闭文件流 fclose(outfile); break; } printf("\n"); printf("\n*-·-·-感谢您的使用,欢送再次使用-·-·-*\n\n");//使用完感谢语! exit(0); }/*****************调用二进制加密解密函数*********************/interjinzhi(){ FILE*infile=NULL;//输入文件指针 FILE*outfile=NULL;//输出文件指针 intkey;//密钥 intoperation=0;//操作类型,加密1,解密2 charfilename[100],tempfile[1000],data; while(1) { infile=outfile=NULL; operation=0; //选择操作类型 while(!(operation==1||operation==2)) { printf("请选择【加密1解密2】:"); scanf("%d",&operation); //处理非法输入 if(!(operation==1||operation==2)) printf("选择有误,请重新选择!\n"); } //翻开输入文件 while(infile==NULL) { printf("\n输入要翻开的文件文件名称(完整路径):"); scanf("%s",filename); //以只读方式翻开文件流 infile=fopen(filename,"r"); //翻开文件流失败,重新输入文件名 if(infile==NULL) printf("\n无法翻开文件,请检查文件是否存在后重新输入!"); } //输入密钥 printf("\n输入密钥:"); scanf("%d",&key); if(operation==1) printf("\n输入保存加密后文件的名称(完整路径):"); else printf("\n输入保存解密后文件的名称(完整路径):"); scanf("%s",filename); //以读写方式翻开输出文件 outfile=fopen(filen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 多联机铜管设备强度及严密性测试记录
- 2025-2030中国智能道路指示牌行业市场现状供需分析及投资评估规划分析研究报告
- 培训积分在职工技能提升中的应用
- 企业安全管理法律法规培训资料
- XX学校2026年春季学期内部控制建设与风险防控培训会
- 游泳馆能耗优化策略-第1篇-洞察与解读
- 漏洞精准挖掘-洞察与解读
- 活性保鲜技术-洞察与解读
- 2025广东广州花都城投产融商业投资有限公司第三次招聘项目用工人员人选及安排笔试历年备考题库附带答案详解
- 2025广东东莞市中堂北海建设有限公司招聘专业技术人员及笔试历年难易错考点试卷带答案解析
- 2026中国石化云南石油分公司加能站后备站经理招聘100人笔试备考试题及答案解析
- 部编版道德与法治三年级下册第四课《致敬劳动者》第二课时 课件
- 湖北省武汉市2026届高三下学期三月调研考试 数学试卷 含答案
- 2026四川西南民族大学招聘教学管理岗人员15人笔试参考题库及答案解析
- 飞机结构与机械系统课件 供油系统
- 2《烛之武退秦师》剧本杀教学课件 2025-2026学年 统编版高中语文 必修下册
- 2026年安徽工贸职业技术学院单招职业技能测试题库附参考答案详解(模拟题)
- 2025年北极航行指南
- 2025年江西科技职业学院单招综合素质考试试题及答案解析
- 2025年上饶职业技术学院单招职业技能考试试题及答案解析
- 发热待查诊治专家共识(2026 版)
评论
0/150
提交评论