C语言加密解密源程序代码

  • 格式:txt
  • 大小:5.20 KB
  • 文档页数:3
//文件加密与解密//
#include<stdio.h>
#include<stdlib.h>
#define M 1000 //预设一个指定文件大小的数字M,方便以后改变
void yiwei() ;
int main()
{
printf("\n$****本程序只能对英文文本进行加密解密操作,如有不便尽请谅解****$");
printf("\n");
printf("\n$******************退出程序输入:1*********************$"); // 欢迎界面
printf("\n");
printf("\n$***************移位加密与解密输入:2******************$"); //
fclose(outfile);
break;
}
printf("\n");
printf("\n*-·-·-感谢您的使用,欢迎再次使用-·-·-*\n\n"); // 使用完感谢语!
exit(0);
}
/*****************调用二进制加密解密函数*********************/
printf(" --> ");
rewind(outfile);
while((data=fgetc(outfile))!=EOF)
printf("%c",data);
printf("\n\n");
fclose(infile); //关闭文件流
printf("\n");
printf("\n$**************二进制加密与解密输入:3*****************$"); // 欢迎界面
printf("\n");
printf("\n$********** 欢迎使用本软件,祝您使用愉快 ************$"); //
fclose(outfile);
break;
}
printf("\n");
printf("\n*-·-·-感谢您的使用,欢迎再次使用-·-·-*\n\n"); // 使用完感谢语!
exit(0);
return 0;
}
char filename[100],tempfile[1000],data;
while(1)
{
infile=outfile=NULL;
operation=0;
//选择操作类型
while(!(operation==1||operation==2))
printf("选择有误,请重新选择!\n");
}
//打开输入文件
while(infile==NULL)
{
printf("\n输入要打开的文件文件名称(完整路径):");
scanf("%s",filename);
//以只读方式打开文件流
infile=fopen (filename,"r");
while(infile==NULL)
{
printf("\n输入要打开的文件文件名称(完整路径):");
scanf("%s",filename);
//以只读方式打开文件流
infile=fopen (filename,"r");
//打开文件流失败,重新输入文件名
printf("\n");
switch(getchar())
{
case '1': exit(0);break;
case '2': yiwei();break;
case '3':erjinzhi();break;
}
return 0;
}
/*****************主函数结束*********************/
}
//输出加密/解密的过程
if(operation==1)
printf("\n加密过程:\n解密过程:");
rewind(infile); //文件指针回到文件开始处
while((data=fgetc(infile))!=EOF)
/***********调用移位加密解密函数*****************/
void yiwei()
{
FILE * infile=NULL; //输入文件指针
FILE * outfile=NULL; //输出文件指针
int key; //密钥
{
if(operation==1) //加密
fputc(data^key,outfile);
else //解密
fputc(data^key,outfile);
}
//输出加密/解密的过程
if(operation==1)
if(infile==NULL)
printf("\n无法打开文件,请检查文件是否存在后重新输入!");
}
//输入密钥
printf("\n输入密钥:");
scanf("%d",&key);
if(operation==1)
printf("\n输入保存加密后文件的名称(完整路径):");
while((data=fgetc(infile))!=EOF)//逐个字符读出输入文件的内容
{
if(operation==1) //加密
fputc(data+key,outfile);
else //解密
fputc(data-key,outfile);
//选择操作类型
while(!(operation==1||operation==2))
{
printf("请选择【加密---1 解密---2】:");
scanf("%d",&operation);
//处理非法输入
if(!(operation==1||operation==2))
{
printf("请选择【加密---1 解密---2】:");
scanf("%d",&operation);
//处理非法输入
if(!(operation==1||operation==2))
printf("选择有误,请重新选择!\n");
}
//打开输入文件
printf("\n输入保存加密后文件的名称(完整路径):");
else
printf("\n输入保存解密后文件的名称(完整路径):");
scanf("%s",filename);
//以读写方式打开输出文件
outfile=fopen (filename,"w+");
printf("\n$********文件移位加密与解密、二进制加密与解密 *****************$"); // 软件信息
printf("\n$************** 2010级电气与电子工程学院 **********************$"); //
printf("\n$****************电1005-1班 周晓鹏 王磊 ***********************$"); // 欢迎界面
printf("\n$********** 欢迎使用本软件,祝您使用愉快 ********************$"); //
printf("\n");
getchar();//输入任意字符后进行下一操作
system("cls"); //清屏操作
printf("\n$****本程序只能对英文文本进行加密解密操作,如有不便尽请谅解****$");
else
printf("\n输入保存解密后文件的名称(完整路径):");
scanf("%s",filename);
//以读写方式打开输出文件
outfile=fopen (filename,"w+");
while((data=fgetc(infile))!=EOF)//逐个字符读出输入文件的内容
printf("%c",data);
printf(" --> ");
rewind(outfile);
while((data=fgetc(outfile))!=EOF)
printf("%c",data);
printf("\n\n");
fclose(infile); //关闭文件流
int operation=0; //操作类型,加密---1,解密---2
char filename[100],tempfile[1000],data;

下载文档原格式

  / 3

相关主题