加密文件程序设计c语言,独家稿件:文件加密解密c语言程序设计.doc文档23页全文免费阅读...

本文档描述了一个使用C语言编写的文件加密解密程序设计,程序能够对字符文件进行加密和解密。用户可以选择加密整个文件或输入一行字符串进行加密,加密方法是通过对字符进行加减特定数值并进行模运算。解密过程与加密相反,用于恢复加密内容。程序还包含了错误处理、文件操作以及用户交互的菜单设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《文件加密解密c语言程序设计.doc》由会员分享,可免费在线阅读全文,更多与《文件加密解密c语言程序设计.doc文档23页全文免费阅读》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。

1、hile((c=fgetc(recall))!=EOF)文件非空,输出解密文件

rintf(quot%cquot,c);

rintf(quot\nquot);

*下面是文件关闭操作*

fclose(source);

fclose(result);

fclose(recall);

system(quotausequot);

}

voidencode()*加密*

{

intm,n=strlen(asswords),i,flag=;m存储加密字符长度,n存储

加密字符串,i为临时变量

charN,w;

charc,C;临时字符存储变量

FILE*result=foen(quotresulttxtquot,quotwtquot);以写方式打开result。

txt文件

FILE*source=foen(quotsoursetxtquot,quotwtquot);以写方式打开source。

txt文件

if(result==NULL)文件非空容错处理

{

rintf(quot不存在resulttxt文件\nquot);

exit();

}ofstreamout(quotresulttxtquot);

if(source==NULL)文件非空容错处理

{

rintf(quot不存在sourcetxt文件\nquot);

flag=;

}

ifstreamfw(quotsoursetxtquot);

ifstreamfs(s,ios::nocreate);

if(flag=)C=fgetc(source);先得到一个文件内容

if(flag==||C==EOF)判断文件是否为空,为

空的话,对输入字符加密

{

rintf(quot请输入要加密的字符串:\nquot);

scanf(quot%。

2、)如何对字符进行加减操作,并保证加减后的数值处于某一范围之内(模

运算)

()了解加解密的基本s

、需要掌握的知识

()如何读写文件

(s

()定义原始文件soursetxt、加密文件resulttxt和还原文件recalltxt

、其文件

的哪些部分进行加密;加密是将原始文件加密并保存到文件中;解密是将加了密

的文件还原并保存到*************

()选择菜单,进行相应的操作。加密方法是设置一加密字符串以及对

()显示菜单:

***************************将

所需要的内容(整个文件或者输入的一行字符)加密,也可以将存储的加密文件

翻译回来。例如加密时可以将选取内容的每个字符依次反复加上””

中的数字,如果范围超过ASCII码值的(空格)(‘z’),则进行模运算(既

N%)。解密与加密的顺序相反。

、部分要求

()从键盘输入要进行加密的一行字符串或者需要加密的文件名。b示在屏幕上,方便检验程序是否正确执行。在此函数中要以输入方式打

开三个文件。

()加密voidencode()

对原始文件soursetxt整个或部分字符串加密,并将加密后的内容写入

resulttxt上。加密时,每个字符依次反复加上””中的数字,如果

范围超过ASCII码值的(空格)(‘z’),则进行模运算(即N%)例如:加密the

(t)+,(h)+,(e)+

变为xqk

()解密voiddbs()在屏幕上显示文件voidrinttxt()

用于将原始文件soursetxt,加密文件resulttxt,解密文件recalltxt,

的内容显bs()从键盘输入要进行加密的一行字符串或者需要加密的文件名。解密与加密的顺序相反。nb如果范围超过ASCII码值的(空格)(‘z’),则进行模运算(既

N%)。。

3、翻译回来。密的程序。可以将

所需要的内容(整个文件或者输入的一行字符)加密,也可以将存储的加密文件

部分内容简介:文格式:宋体,小号,不加粗,两端对齐,倍行距)

原始数据部分内容简介:文格式:宋体,小号,不加粗,两端对齐,倍行距)

原始数据文件(studdat)

课题内容和要求

编写一个对字符文件(由数字或字母组成)进行加密解密的程序。可以将

所需要的内容(整个文件或者输入的一行字符)加密,也可以将存储的加密文件

翻译回来。例如加密时可以将选取内容的每个字符依次反复加上””

中的数字,如果范围超过ASCII码值的(空格)(‘z’),则进行模运算(既

N%)。解密与加密的顺序相反。

、部分要求

()从键盘输入要进行加密的一行字符串或者需要加密的文件名。

()显示菜单:

*********************************

设置加密方法

加密

解密退出

*********************************

()选择菜单,进行相应的操作。加密方法是设置一加密字符串以及对文件

的哪些部分进行加密;加密是将原始文件加密并保存到文件中;解密是将加了密

的文件还原并保存到文件中,同时应比较与原始文件的一致性;显示是将文件在

屏幕上显示出来,供人工校对。

()定义原始文件soursetxt、加密文件resulttxt和还原文件recalltxt

、其他要求

()变量、函数命名符合规范。

()注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对

参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

()程序的层次清晰,可读性强。

、需要掌握的知识

()如何读写文件

()如何对字符进行加减操作,并保证加减后的数值处于某一范围之内(模

运算)

()了。

4、uotrtquot);打开原始文件

FILE*result=foen(quotresulttxtquot,quotrquot);

FILE*recall=foen(quotrecalltxtquot,quotrtquot);打开解密文件

charc;临时字符存储变量

if(source==NULL)文件存在性判断

{rintf(quot不存在sourcetxt文件\nquot);

exit();

}

if(result==NULL)

{

rintf(quot不存在resulttxt文件\nquot);

exit();

}

if(recall==NULL)文件存在性判断

{

rintf(quot不存在recalltxt文件\nquot);

exit();

}

c=fgetc(source);先从原始文件读出一个字符,若不是文件结尾,则文

件内容非空

if(c==EOF)文件内容为空,输出加密字符

{

rintf(quot\n加密字符:quot);

rintf(quot%s\nquot,s);

}

else文件非空,输出原始文件

{

rintf(quot\n原始文件:quot);

rintf(quot%cquot,c);

while((c=fgetc(source))!=EOF)文件非空调用判断

rintf(quot%cquot,c);}

rintf(quot\nquot);

rintf(quot\n解密文件:quot);

while((c=fgetc(result))!=EOF)文件非空,输出解密文件

rintf(quot%cquot,c);

rintf(quot\nquot);

rintf(quot\nquot);

rintf(quot\n解密文件:quot);

w。

5、解加解密的基本原理

需求分析

模块分析:

()在屏幕上显示文件voidrinttxt()

用于将原始文件soursetxt,加密文件resulttxt,解密文件recalltxt,

的内容显示在屏幕上,方便检验程序是否正确执行。在此函数中要以输入方式打

开三个文件。

()加密voidencode()

对原始文件soursetxt整个或部分字符串加密,并将加密后的内容写入

resulttxt上。加密时,每个字符依次反复加上””中的数字,如果

范围超过ASCII码值的(空格)(‘z’),则进行模运算(即N%)例如:加密the

(t)+,(h)+,(e)+

变为xqk

()解密voiddecode()

对加密后的resulttxt进行解密,并将解密后的内容写入recalltxt

文件中。解密过程与加密过程的顺序正好相反,即从第一个字符开始,每个字符

依次反复减去””中的数字,若执行减法后得到一个负数,则把这个

负数加,即(N+),其中N为负数。

例如:把xqk解密

(x)(q)(k)

变为the

()设置加密方法voidset()

由键盘输入,进行加密方法的设置,主要由输出输入语句组成,目的是为

了方便人机交流。

()显示菜单:

*********************************

设置加密方法

加密

解密

退出

*********************************

()加密方法用结构表示

structassword*加密方法*

{

chars[];*加密字符串*

longwd使界面整洁*

}

voidrinttxt()*显示显示原始文件和解密文件函数*

{

*以读方式打开文件*

FILE*source=foen(quotsourcetxtquot,q。

6、squot,s);

m=strlen(s);*对输入的字符串加密*

frintf(source,quot%squot,s);将输入字符输出至source文件中

for(i=;iltm;i++)

{

staticinta=;

if(altasswordwd)

{

N=s[i]+asswords[a%n];程序报告设计

题目:加密解密处理

程序设计报告的电子文档(B程序设

计doc)

一老师对作业要求。

:对学生课程设计两周的纪律及提交内容的要求:

()规定上机的时间内不得无故缺勤,有事需要向指导老师书面请

假;

()上机时禁止玩游戏,屡教不改者,实习成绩可为不及格;

()每人手头准备一至两本CC++的有关工具书,上机前作好充

分的准备,包括事先写好主要算法的程序

代码以保证充分利用上机的时间调试程序;

()同组可以讨论思路,但是程序要自己完成,不可抄袭,若完全

抄袭别人的,实习成绩可为不及格;

()实习的最后阶段认真完成实习报告的电子文档。报告内容不得

少于页。

()每个学生最后提交的材料:

压缩文件一个,起名为:学号名_题目名rar(如:B_学生

管理系统rar)。该压缩文件中包含下列

几个文件:程序设计报告的电子文档(起名为:学号_程序设计doc)、

源程序文件(起名为:学号名_题目

名c,如:B_学生管理系统c)、原始数据文件(如:

studdat)、编译链接后得到的可执行

文件(起名为:学号名_题目名exe)

()请同学独立完成报告,若发现两份报告一模一样,则两人都按

不及格论处,请各位同学珍惜自己的版权

,也请指导老师严格把关。

附:上机时间:每天上午::

附:成绩的评定

根据学生平时的上机出勤情况、为上机所作的准备情况、上机时的表

现、程序的完成情况、报告的完。

7、hile((c=fgetc(recall))!=EOF)文件非空,输出解密文件

rintf(quot%cquot,c);

rintf(quot\nquot);

*下面是文件关闭操作*

fclose(source);

fclose(result);

fclose(recall);

system(quotausequot);

}

voidencode()*加密*

{

intm,n=strlen(asswords),i,flag=;m存储加密字符长度,n存储

加密字符串,i为临时变量

charN,w;

charc,C;临时字符存储变量

FILE*result=foen(quotresulttxtquot,quotwtquot);以写方式打开result。

txt文件

FILE*source=foen(quotsoursetxtquot,quotwtquot);以写方式打开source。

txt文件

if(result==NULL)文件非空容错处理

{

rintf(quot不存在resulttxt文件\nquot);

exit();

}ofstreamout(quotresulttxtquot);

if(source==NULL)文件非空容错处理

{

rintf(quot不存在sourcetxt文件\nquot);

flag=;

}

ifstreamfw(quotsoursetxtquot);

ifstreamfs(s,ios::nocreate);

if(flag=)C=fgetc(source);先得到一个文件内容

if(flag==||C==EOF)判断文件是否为空,为

空的话,对输入字符加密

{

rintf(quot请输入要加密的字符串:\nquot);

scanf(quot%。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值