写一个对文本文件加密的程序和一个解密程序

急!!!望哪位好心人帮帮忙吧!!!!在这儿谢谢了~~~~~
2024年11月27日 13:43
有1个网友回答
网友(1):

#include
#include
#define x 4//密钥
/*********定义加密函数**********/
int jiami()
{
FILE *fp1,*fp2; //定义函数指针
char filename[50],ch;
printf("请输入要加密的文件:\n");
scanf("%s",filename) ;
fp1=fopen(filename,"r");
if(fp1==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
} //打开文件失败
// printf("原文件为:\n");
fp2=fopen("jiamihou","w");//新猛孙建存放加密后数据的文件jiamihou
if(fp2==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}
while(!feof(fp1)) //没有到达文件尾,继续读入字符
{
ch=fgetc(fp1); //正确读出原文件
ch=ch+x;//凯萨加密法
//putchar(ch);//显示加密后的文件
fputc(ch,fp2); //将加密后的字符放入文件jiamihou中
}
printf("加密成功!\n");
fclose(fp1);
fclose(fp2);
}
/********定义解密函数*********/
int jiemi()
{
FILE *fp1,*fp2;
char filename[50],ch;
char y;
printf("\n");
printf("请输入要解密的文件:\n");
scanf("%s",filename) ; //要解密的文件名
fp1=fopen(filename,"r");
if(fp1==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}//打开文件失败
fp2=fopen("jiemihou","w");//新建存放解密后数据的文件jiemihou
if(fp2==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}
do
{
printf("请输入密码:\n");
scanf("%d",&y) ; //密码
}while(y!=x);
while(!feof(fp1)) //没有到达文件尾,继续读入字符
{
ch=fgetc(fp1); //正确读出原文件
ch=ch-y;//凯萨解密法
//putchar(ch);//显示解密后前知慎的文件
fputc(ch,fp2); //将解密后的字符放入文件jiemihou中
}
printf("解密成功!\n");
fclose(fp1);
fclose(fp2);
}
/********定义打开文件********/
int display()
{
FILE *fp;
char filename[50],ch;
printf("\n");
printf("请输入要打开显示的文件:\n");
scanf("%s",filename) ; //要慧敬显示的文件名
fp=fopen(filename,"r");
if(fp==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}//打开文件失败
while(!feof(fp)) //没有到达文件尾,继续读入字符
{
ch=fgetc(fp); //正确读出原文件
putchar(ch);//显示解密后的文件
}
printf("\n");
fclose(fp);
}
/********主函数*************/
void main()
{
int n;
do
{
printf("操作方式如下:\n");
printf("1为加密操作\n");
printf("2为解密操作\n");
printf("3为显示操作\n");
printf("0为退出操作\n");
printf("**************************************");
printf("\n请选择您的操作:\n");
scanf("%d",&n);
switch(n)
{
case 0:
break;
case 1:
printf("\n您选择了加密操作\n");
jiami();
break;
case 2:
printf("\n您选择了解密操作\n");
jiemi();
break;
case 3:
printf("您选择了显示文件操作\n");
display();
break;
default:
printf("请在0-3之间选择\n");
}
}while(n!=0);
printf("您选择了退出操作\n");
system("pause");//系统暂停,输出“按任意键继续...”.包含在
}