加密二进制文件
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
void encrypt(char *buf, int n, char *key)
{
int i,j;
int kn=strlen(key);
for(i=0,j=0;i<n;i++,j++)
{
buf[i]^=key[j];
if(j%kn==0)
{
j=0;
}
}
}
int main(int argc, char **argv)
{
if(argc<3)
{
printf("canshubugou");
return 0;
}
FILE *fp1=fopen(argv[1],"r+b");
if(fp1==NULL)
{
printf("open failed");
return -1;
}
FILE*fp2=fopen(argv[2],"w+b");
if(fp2==NULL)
{
//printf("open failed");
fclose(fp1);
return -1;
}
int n;
char key="nimeiye";
char buf[1024]={0};
while((n=fread(buf,1,1024,fp1))>0)
{
encrypt(buf,n,key);
fwrite(buf,1,n,fp2);
}
system("pause");
return 0;
}