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

下载本文档

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

文档简介

文件加密解密系统设计

内容摘要:作为保障数据数据平安的一种方式,对于信息的加密技巧起源于欧洲,最广

为人知的编码机器是德国的GermanEnigma,在第二次世界大战中德国人利用它创立了加

密信息系统,从而解决军事信息的保密通讯问题。随着信息技术的开展,人们的文本文件

需要更简便、平安和可靠的加密管理模式。设计一个基于c语言的文本文件加密及解密软

件,可以方便对文本文件的加密与解密。本设计实现了文本文件的解密及解密,运行软件

之后只需输入任意一个文本文件的文件名及后缀名即可对该文本文件进行加密或解密操

作。本设计的加密与解密系统,使用了面向各类文件的方法,运用MicrosoftVisualC++

6.0实现具有加密、解密、帮助信息、读取文本文件、显示结果、退出等功能的文件加密

与解密系统。

关键词:C语言程序设计密码文件加密与解密

Fileencryptionanddecryptionsystemdwsign

Abstract:Asawayofdata,datasecurity,forinformationencryptiontechnique

originatedinEurope,themostwellknownofthecodingmachineisGermanGerman

Enigma,ChinaandGermanyduringthesecondworldwarpeopleuseittocreatethe

encryptedinformationsystem,tosolvetheproblemofmi1itaryinformation

confidentialcommunication.Withthedevelopmentofinformationtechnology,

peoplc,stextfilesthatneedtobemoreconvenient,safeandreliableencryption

managementmode.Designatextfileencryptionanddecryptionsoftwarebasedon

clanguage,canbeconvenienttotextfileencryptionanddecryption.Thisdesign

implementsthedeclassificationofatextfileanddecryption,runningsoftware

simplytypeanytextfileafterfilenameandextensioncanencryptordecrypt

operationonthetextfilesThisdesignofencryptionanddecryptionsysteir.,using

themethodforallkindsofdocuments,UsingMicrosoftVisualc++6.0Implemented

withencryption,decryption,helpinformation,readsthetextfile,displaythe

results,exitfunctionsuchasfileencryptionanddecryptionsystem.

Keyword:ClanguageProgramdesignCodeFileencryptionanddecryption

目录

前言...................................................................3

1设计目的.............................................................3

1.1为什么要对文件进行加密和解密?.................................3

1.2文件的加密解密.................................................3

1.2.1移位加密和解密..........................................3

1.2.2二进制加密和解密.......................................4

2c语言................................................................4

2.1什么是C语言?.................................................4

2.2C语言开展历史简单介绍.........................................4

2.3用C语言程序设计的优点.........................................4

3设计流程图............................................................5

3.1主函数main。执行流程图.........................................5

3.2加密前的文件内容................................................6

3.3主菜单..........................................................7

3.4加密解密操作....................................................7

3.4.1选择移位加密解密输入2,输入1加密......................7

选择移位加密解密输入2,输入2解密...........................8

选择二进制加密解密输入3,输入1加密..........................8

选择二进制加密解密输入3,输入2解密.........................9

3.5退出系统.......................................................10

4结束语...............................................................10

附录...................................................................10

参考文献...............................................................18

文件加密解密系统设计

-IX.-1—

刖百

本程序旨在训练根本编程能力,了解管理信息系统的开发流程,熟悉C语

言的文件和结构数组的各种根本操作。本程序中涉及结构体、数组、文件等方面

的知识。通过本程序的训练,能对C语言的文件操作有一个更深刻的了解,掌

握利用数组存储结构实现文件加密解密的原理,为进一步开发出高质量的加密解

密系统打下坚实的根底。

1设计目的

随着科技的进步和信息产业的飞速开展,文伶的保密也成为人们生活中所必

须的,本C++文件加密解密主要是利用计算机进行文件的加密和解密操作,根源

程序包涵移位加密解密和二进制加密解密。本程序是利用指针实现此文件加密解

密系统。

1.1为什么要对文件进行加密和解密?

随着社会的开展人们把隐私保护和平安的设置看得越来越重要。其中文件的

加密、解密就是一种最简单而有效的保护方式,它在我们的日常生活中扮演着重

要的角色。

1.2文件的加密解密

现在主要有两种加密方式,一种是移位加密解密,第二种是二进制加密解密。

它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,

这种方法在密码学中叫做对称加密算法,称加密算法使用起来简单快捷、密钥较

短、且破译困难。

移位加密和解密

加密的时候运用C语言知识,将所遇到的字符进行移位操作。解密的时候,

根据加密的方法,反过来解密,即将加密字符进行移位操作。学会运用文件,

对任意文件进行加密解密操作,先翻开文件进行加密解密操作,还要将文件显示

出来,最后关闭文件。

工作单元。[5]

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、

强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多

样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。[6]

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、

共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使

程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且

计算功能、逻辑判断功能强大。[7]

本程序选择C语言编写文件加密与解密源程序是因为C语言编程易操作更简

单,更容易实现,而且易修改,运行方法也很简单。根据每条语句后面的注解能

够让人一目了然,更能让不懂C语言的人也能轻易运行程序

3设计流程图

3.1主函数main。执行流程图

如图1所示。

图1

文件加密解密系统执行主流程如图1所示。在判断键值时,有效的输入为

1-3之间的任意数值,其他输入都被视为错误按键。假设输入为1,那么调用

exit(0)函数执行退出操作;假设选择2,那么调用yiwciO函数执行移位加密解

密操作:假设选择3,那么调用erJinzhiO函数,执行二进制加密解密操作;假

设输入为1-3之外的值,那么给出按键错误的提示"Inputerror,Pleaseinput

again!”,并重新让你重新键入值。

3.2加密前的文件内容

利用源程序对纯英文字母的文件“hao.txt"和"mei.ixt”进行加密和解

密运算,截图如下:

“hao.txt”的内容如图2所示,“mei.txt”的内容如图3所示。

⑪mei-记事本

文件(F)编辑(E)格式(O)5看(V)1

zxcvbmn

图2

jhao-记事本

文件(F)编辑(E)做(O)查看而

asdfghjkl

图3

3.3主菜单

主菜单界面如图4所示。

本程序只能对英文文本进行加密解密操作,如有不便尽请谅解《***$

$x*xxxxxxxxxx*2:移位力口密与解密输入XX*XX*XKXXX.

KKKKK.KKKKKKKJ.1,|milII口Tjj月午3!1»/\KKKKKKK.KKK,

欢迎使用本软件,祝您使用愉快***********$

精输入(1-3);.

图4

3.4加密解密操作

选择移位加密解密输入2,输入1加密

输入翻开文件文件名称操作(完整路径):hao.txt再输入密钥3,输入保存

解密后文件的名称(完整路径)x.txt操作如图5所示。

$......本程序只能对英文文本进行加密解密操作,如有不便尽请谅解二大

$xxxx*xxxxxxxx2:移位加密与解密输入xxxxxxxxxxxS

$nxxx-xm3:二进制加密与解密输入***********$

$*************欢迎使用本软件,祝您使用愉快XX-**x**x**5

请输入(1-3)I2

请选择【加密一T解密一-2】,1

输入要打开的文件文件名称〈完整路径〉:ha。.txt

输入密钥,2

输入保存加密后文件的名称〈完整路径〉r.txt

加密过程:asdfghjkl-->cufhijlmn

--------感谢您的使用,欢迎再次使用-------

Pressanykeytocontinue

图5

选择移位加密解密输入2,输入2解密

输入翻开文件文件名称操作(完整路径):x.txl再输入密钥3,输入保存解

密后文件的名称(完整路径)hao.txt操作如图6所示。

本程序只能对英文文本迸行加定解密操作,如有不便尽请谅解

S0-X1:qfi中,不呈月^转I入,

片XXUMxxxxxx2:移位加密与解定输入

MXXWXXXXXXXXXX3:二迸制加密与解密输入

k*************欢迎使用本软件,祝您使用愉快…………

清输入(1-3)।2

请选择[加密--1解密--2]:2

输入要打开的文件文件名称《完整路径》:x.txt

输入密钥:2

输入保存解卷后文件的名称《完整路径》:ha。.txt

解密过程icufhijlnn—>asdfghjkl

--------感谢您的使用,欢迎再次使用------*

[Pressenykeytocontinue

图6

3.4.3选择二进制加密解密输入3,输入1加密

输入翻开文件文件名称操作(完整路径):mei.txt再输入密钥3,输入保存

解密后文件的名称(完整路径)x.txt操作如图7所示。

yx*x.本程序只能对英文文本进行加密解密操作,如有不便尽请谅解扁与

1:退出程序输入

KKKKKKKKK2:移位加密与解密输入

3:二进制加密与解密输入MXMXMXMXMXM$

欢迎使用本软件,祝您使用愉快W^9

请输入(—3);3

请选择【加密-一1解密--2]:1

输入要打开的文件文件名称(完整路径Xmei.txt

输入密钥:3

输入保存加密后文件的名称《完整路径“x.txt

加密过程:zxcubnn—>y<'uamn

--------感谢您的使用,欢迎再次使用------*

anykephnnnnhinne

图7

选择二进制加密解密输入3,输入2解密

输入翻开文件文件名称操作(完整路径):x.txt再输入密钥3,输入保存解

密后文件的名称(完整路径)mei.txt操作如图8所示。

本程序只能对英文文本进行加密解密操作,如有不便尽请谅解I*

.xxxxxxxxx.xx*2:移位力口密与解密输入>«xx*xx**x*x$

VKKKKKK.KKKKKKO■__J7T中IJ刀口--J用午0^彳刖/\

$MMMMMMMMMMMMM欢迎使用本软件,祝您使用愉快***********$

请输入(1-3);3

请选择[加密--1解密--2]:2

输入要打开的文件文件名称<完整路径〉:x"xt

输入密钥:3

输入保存解密后文件的名称《完整路径):mei.txt

解密过程:y〈'uamn―>zxcvbnn

*------感谢您的使用,欢迎再次使用-------*

Pressanykeytocontinue____________________________

图8

3.5退出系统

输入2,退出系统,操作如图9所示。

$—„^本程序只能对英文文本进行加密解密操作,如有不便尽请谅解一$

■.ILX।I.IVV/、

$・・xxxxx・wxx2:移位加密与解密输,人xxxxwx*x$

7rrrKLiLLlIriLJ.]江(Ml?IU»Jj^-J■X^Tj«RM/\—

$•…….....欢迎使用本软件,祝您使用愉快***********$

国输入(1-3)।1

Pressanykeytocontinue

图9

4结束语

通过这次课程设计,我学到了许多东西,在完成设计的过程中也遇到了许多

的问题,通过不断的查资料,和向老师同学的请教,使得大局部问题得到了解决。

并且解决问题的过程中我也学到了很多东西。在设计过程中,主要遇到的问题

就是文件的操作问题,以前学习的时候,对文件的操作掌握的不是很好,但在做

课程设计时会常常用到,经认真看书后解决了这个问题。最大问题是密码太多时

会出现乱码的问题,后用while0函数解决了。虽然在课程设计过程中修改了

很屡次,但程序还是很不完美,有一些问题未能解决。比方说程序的界面不够美

观,不够人性化;在对密码的处理上也不好,只能对英语文本进行加密和解密操

作也是很大的问题,我将在以后的时间里继续努力,不断充实自己。希望经过以

后的学习也能够对中文文档进行加密和解密操作。

附录

源程序:

#include<stdio.h>

#include<stdlib.h>

#defineM1000〃预设一个指定文件大小的数字M,方便以后改变

voidyiwei();

intmain()

printf(〃\n$*x******本程序只能对英文文本进行加密解密操作,如

有不便尽请谅解**x**$〃);//欢送界面

printf(〃\n〃);

printf(〃\n$*x*****文件移位加密与解密、二进制加密与解密

*****$");〃软件信息

printf;

printf(〃\n$*x*****2011级通信工程学院

*****$〃);//欢送界面

printf("\n");

printf(〃\n$*x*****通信四班:朱彬文张一帆通信二班:张婷

*****$");//欢送界面

printf(〃\n〃):

printf(〃\n$*x*****欢送使用本软件,祝您使用愉快

*****$〃);//欢送界面

printf(〃\n〃);

printf(〃\n按enter键进入主菜单〃);

getcharO;〃输入任意字符后进行下一操作

system(〃cls");//清屏操作

printf(〃\n$x************本程序只能对英文文本进行加密解密操作,

如有不便尽请谅解林林$〃);//欢送界面

printf(〃\n〃):

printf(〃\n$*x***********1:退出程序输入

***********$〃);/I欢送界面

printf("\n〃);

printf(〃\n$*x***********2:移位加密与解密输入

***********$〃);//欢送界面

printf(〃\n〃);

printf(〃\n$x************3:二进制加密与解密输入

***********$〃);//欢送界面

printfGV):

printf(〃\n$*x***********欢送使用本软件,祝您使用愉快

***********$〃);//欢送界面

printf("\n请输入(1-3);〃);

switch(getchar())

(

casp'1':pxt.(0);printf(^hypbya"):hroak;

case'2':yiwei();break;

case'3':erjinzhi();break;

}

return0;

}

/**************x**主函数结束**********x**********/

/***********调用移位加密解密函数******x**********/

voidyiwci0

(

FILE*infile=NULL;〃输入文件由针

FILE*outfit=NULL;〃输出文件指针

intkey;〃密钥

intoperation=0;〃操作类型,加密—1,解密—2

charfilename[100],tempfile[1000],data;

whiled)

infile=outfi1e=NULL;

operation:。;

〃选择操作类型

whi1e(!(operation-11|operation=2))

(

printf(〃请选择【加密—1解密—2】:〃);

scanf&operation);

〃处理非法输入

if(!(oppration==1|oppration==2))

printf(〃选择有误,请重新选择!\n〃);

)

〃翻开输入文件

while(infile==NULL)

(

printf(〃\n输入要翻开的文件文件名称(完整路径):〃);

scanf;〃%s〃,filename);

〃以只读方式翻开文件流

infile=fopen(filename,〃r〃);

//翻开文件流失败,重新输入文件名

if(infile==NULL)

priut「(〃\u无法翻开文件,请检查文件是否存在后重新输

入!〃);

)

printf(〃\n输入密钥:〃);

scanf(〃%d〃,&key);〃输入密钥

if(operation-1)

printfC\n输入保存加密后文件的名称(完整路径):〃);

else

printfC\n输入保存解密后文件的名称(完整路径):〃);

scanf(〃%s”,filename);

〃以读写方式翻开输出文件

outfile=fopen(filename,;

while((data=fgetc(infile))!=EOF)〃逐个字符读出输入文件的内

(

if(operation==1)〃加密

fputc(data+key,outfile);

else〃解密

fputc(data-key,outfile);

)

〃输出加密/解密的过程

if(operation-1)

printfC\n加密过程:〃);

else

printf(z/\n解密过程:〃);

rewind(infile);〃文件指针回到文件开始处

while((dala=fgelc(infile))!=E0F)〃逐个字符读出输入文件的内

printf(〃%c〃,data);

printf(〃一>〃);

rewind(outfile);

while((data二fgetc(outfile))!=EOF)〃逐个字符读出输入文件的

内容

printf(〃%c〃,data);

printfC\n\n9;

fclose(infile);//关闭文件流

fclose(outfile);

break;

printf(〃\n〃);

print.fC\n*------感谢您的使用,欢送再次使用------*\n\n〃);//使

用完感谢语!

exit(0);

}

/**************x**调用二进制加密解密函数*********************/

intorjinzhi()

FILE*infile=NULL;〃输入文件指针

FILE*outfile=NULL;〃输出文件指针

intkey;〃密钥

intoperation=0;〃操作类型,加密一-1,解密一-2

charfilename[100],teinprile[1000],daLn;

while(l)

infi1e=outfi1e=NULL;

operation=0;

〃选择操作类型

while(!(operation-11|operation=2))

(

printf(〃请选择【加密---1解密---2】:〃);

scanfT'%d〃,&operation);

〃处理非法输入

if(!(operation-11|operation-2))

printf("选择有误,请重新选择!\n〃);

}

〃翻开输入文件

while(infile二二NULL)

(

printfC\n输入要翻开的文件文件名称(完整路径):〃);

scanffilename);

//以只读方式翻开文件流

infile=fopcn(filename,〃r〃);

〃翻开文件流失败,重新输入文件名

if(infilo==NULL)

printf(z,\n无法翻开文件,请检查文件是否存在后重新输

入!〃);

)

〃输入密钥

printf(〃\n输入密钥:〃);

suaiif&key);

if(

温馨提示

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

评论

0/150

提交评论