《文件加密解密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%。