|
- #include <stdio.h>
- #include <stdlib.h>
- void encryption(char buffer[],int file_size,int key);
- void decryption(char buffer[],int file_size,int key);
- void Process(int a);
- int openSrcFile(char **buffer);
- void saveDstFile(char *buffer);
- void menu();
- main()
- {
- char flag;
- menu();
- flag=getchar();
- getchar();
- while(flag!='Q')
- {
- switch(flag)
- {
- case 'E':Process(0);break;
- case 'D':Process(1);break;
- default:printf("输入错误!\n");break;
- }
- flag=getchar();
- getchar();
- }
- }
- void menu()
- {
- printf("这是一个标准加密解密系统,欢迎您使用!\n");
- printf("E表示加密,D表示解密,Q表示退出\n");
- }
- int openSrcFile(char **buffer)
- {
- FILE *myfile_src;
- char filename[20];
- long file_size;
- printf("请输入要加密文章的路径:");
- scanf("%s",filename);
- if(!(myfile_src=fopen(filename,"rb")))
- printf("ERROR!");
- fseek(myfile_src,0,SEEK_END);
- file_size=ftell(myfile_src);
- fseek(myfile_src,0,SEEK_SET);
- *buffer=(char *)malloc(file_size);
- fread(*buffer,1,file_size,myfile_src);
- fclose(myfile_src);
- return file_size;
- }
- void saveDstFile(char *buffer,long file_size)
- {
- FILE *myfile_dst;
- char filename[20];
- printf("请输入加密后的文件名:");
- scanf("%s",filename);
- if(!(myfile_dst=fopen(filename,"wb")))
- printf("ERROR!");
- fwrite(buffer,1,file_size,myfile_dst);
- printf("OK!");
- fclose(myfile_dst);
- }
- void Process(int a)
- {
- FILE *myfile_dst;
- char * buffer;
- int key;
- long file_size;
- file_size=openSrcFile(&buffer);
- printf("请输入一位密码:");
- scanf("%d",&key);
- if(a==0)
- encryption(buffer,file_size,key);
- else
- decryption(buffer,file_size,key);
- saveDstFile(buffer,file_size);
- }
- void encryption(char buffer[],int file_size,int key)
- {
- int i;
- for(i=0;i<file_size;i++)
- buffer[i]=buffer[i]+key;
- }
- void decryption(char buffer[],int file_size,int key)
- {
- int i;
- for(i=0;i<file_size;i++)
- buffer[i]=buffer[i]-key;
- }
复制代码 |
|