#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
void menu();
void jiemi();
void jiami();
int i,j;
int key=5;
int a[5],b[5];
void main()
{
int n;
while(1)
{
menu();
printf("\n 请输入您要选择的操作序号,按回车键确认:");
scanf("%d",&n);
switch(n)
{
case 1: jiemi();break;
case 2: jiami();break;
case 3: exit(0);
default: printf("输入错误,请输入列表中存在的序号!\n ");
}
}
}
void menu()
{
printf("\n ************************* 对称数据的加密与解密************************ ");
printf("\n 1 解密并显示");
printf("\n 2 加密并保存");
printf("\n 3 退出");
}
void read()
{
FILE *fp;
if((fp=fopen("d:\\file10.dat","r"))==NULL)
{ printf("文件打开失败!\n");
return;
}
else
{
for(i=0;!feof(fp);i++)
fread(a,1,4,fp);
}
fclose(fp);
}
void jiemi()
{
int c[5];
int i;
printf("\n解密后的数据为 ");
read();
for(i=0;i<5;i++)
{
c[i]=a[i]^key;
}
for(i=0;i<5;i++)
printf("\t%d",c[i]);
}
void jiami()
{
int i;
int d[5];
FILE *fp;
printf("\n请输入5个整数,用空格隔开,按回车确认\n");
for(i=0;i<5;i++)
scanf("%d",&d[i]);
for(i=0;i<5;i++)
b[i]=d[i]^key;
printf("\n文件保存成功\n");
if((fp=fopen("d:\\myfile.txt","a"))!=NULL)/*当文件已经存在时,在已有的信息末尾添加新信息*/
{
for(i=1;i<=5;i++)
fprintf(fp,"\t%d",b[i]);
fprintf(fp,"\n");
}
else
{
if((fp=fopen("d:\\myfile.txt","w"))!=NULL)/*当文件不存在时,新建学生文件并添加信息*/
{
for(i=1;i<=5;i++)
fprintf(fp,"\n%d",b[i]);
fprintf(fp,"\n");
}
}
fclose(fp);
}