伟的博客 研发工程师

c语言加密解密文件

2014-02-13
c

不多说,上代码:#include #include //#include #include void dofile(char *in_fname,char *pwd,char *out_fname);/*对文件进行加密的具体函数*/ void usage(char *name); void main(int argc,char *argv[])/*定义main()函数的命令行参数*/ { dofile("/home/david/move.tar.gz","","/home/david/moveout.tar.gz"); //dofile("/home/david/moveout.tar.gz","","/home/david/moveout2.tar.gz"); printf("加密成功,解密请再次运行程序\n"); } /*加密子函数开始*/ void dofile(char *in_fname,char *pwd,char *out_file) { FILE *fp1,*fp2; register char ch; int j=0; int j0=strlen(pwd); fp1=fopen(in_fname,"r"); if(fp1==NULL) { printf("cannot open in-file.\n"); exit(1);/*如果不能打开要加密的文件,便退出程序*/ } fp2=fopen(out_file,"wb"); if(fp2==NULL) { printf("cannot open or create out-file.\n"); exit(1);/*如果不能建立加密后的文件,便退出*/ } /*加密算法开始*/ while(j0>=0) { ch=fgetc(fp1); while(!feof(fp1)) { fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*异或后写入fp2文件*/ ch=fgetc(fp1); } j0--; } fclose(fp1);/*关闭源文件*/ fclose(fp2);/*关闭目标文件*/ } void usage(char *name) { printf("\t=======================File encryption======================\n"); printf("\tusage: %s In-fname password out_fname\n",name); printf("\tExample: %s file1.txt 12345678 file2.txt\n",name); }


Comments