文件加密解密:
通过XOR的方式进行简单加密
也没什么 主要是为了弥补tar 不能设置密码的不足 哈哈!!
好处是第二次XOR数据又回复了,第二次相当于解密,操作简单,哈哈!!
# include <stdio.h>
# include <unistd.h>
# define NORMAL_SIZ BUFSIZ
char buf[NORMAL_SIZ];
#define CHMSK_KEY 0xa5
int main(int argc, char **argv)
{
FILE *fp = fopen(argv[1], "rb+");
int n;
while ((n = fread(buf, 1, NORMAL_SIZ, fp)) > 0)
{
int i;
for (i = 0; i < n; i++)
{
buf[i] ^= CHMSK_KEY;
}
if (fseek(fp, -n, SEEK_CUR) == -1)
{
perror("fseek");
}
n = fwrite(buf, 1, n, fp);
fflush(fp);//如果不加这句,那么文件大小如果小于库函数缓冲(默认是BUFSIZ大小)时实际上面的写操作并没写进去,从而导致下一次read还是成功,因此程序不会退出
buf[0] = 0;
}
fclose(fp);
return 0;
}