//使用fread()/fwrite()实现对文件的加密与解密
/*
程序使用方法:
加密用法-> 程序名 -c src dest
解密用法-> 程序名 -d src dest
argv[0] argv[1] argv[2] argv[3]
*/
#define F_PRINT_ERR(e)\
do\
{\
if(e == NULL)\
{\
printf("open error");\
exit(-1);\
}\
}\
while(0)
#include <stdio.h>
void encode(char* buf,int n)
{
int i;
for(i = 0;i<n;i++)
buf[i]++;
}
void decode(char *buf,int n)
{
int i;
for(i = 0;i<n;i++)
buf[i]--;
}
int main(int argc,char* argv[])
{
if(argc != 4)
{
printf("use xx.exe -d[-c] src dest\n");
exit(-1);
}
FILE* pfr = fopen(argv[2],"rb+");
F_PRINT_ERR(pfr);
FILE* pfw = fopen(argv[3],"wb+");
fclose(pfr);
F_PRINT_ERR(pfw);
int buf[1024];
int n;
if(strcmp(argv[1],"-c") == 0)
{
while((n = fread((void*)buf,1,1024,pfr))> 0 )
{
encode(buf,n);
fwrite((void*)buf,1,n,pfw);
}
}
else if(strcmp(argv[1],"-d") == 0)
{
while((n = fread((void*)buf,1,1024,pfr))> 0 )
{
decode(buf,n);
fwrite((void*)buf,1,n,pfw);
}
}
else
printf("arg error\n");
fclose(pfr);
fclose(pfw);
return 0;
}