level 1
c闲人
楼主
这是一个简单的加密算法程序它可以通过用户输入密码为密钥把某个文件进行加密需要大家掌握的是:异或运算在加密中的运用以及对文件的字节码转换本程序使用了encfile()函数实现加密算法部分利用了fgetc(),fputc()函数从文件中逐字节读取和储存数据代码如下:#include
#include
#include
#include
void encfile(char *in_filename,char *pwd,char *out_filename);void main(int argc,char *argv[]){ char in_filename[30]; char out_filename[30]; char pwd[8]; if(argc!=4){ printf("\nPlesae input In-filename:\n"); gets(in_filename); printf("Plesae input your Password:\n"); gets(pwd); printf("Plesae input Out-filename:\n"); gets(out_filename); encfile(in_filename,pwd,out_filename); }}void encfile(char *in_filename,char *pwd,char *out_file){ FILE *fp1,*fp2; register char ch; int j=0; int j0=0; fp1=fopen(in_filename,"rb"); 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(pwd[++j0]); ch=fgetc(fp1); while(!feof(fp1)){ fputc(ch^pwd[j>=j0?j=0:j++],fp2); ch=fgetc(fp1); } fclose(fp1); fclose(fp2);}
2004年09月03日 17点09分
1
#include
#include
#include
void encfile(char *in_filename,char *pwd,char *out_filename);void main(int argc,char *argv[]){ char in_filename[30]; char out_filename[30]; char pwd[8]; if(argc!=4){ printf("\nPlesae input In-filename:\n"); gets(in_filename); printf("Plesae input your Password:\n"); gets(pwd); printf("Plesae input Out-filename:\n"); gets(out_filename); encfile(in_filename,pwd,out_filename); }}void encfile(char *in_filename,char *pwd,char *out_file){ FILE *fp1,*fp2; register char ch; int j=0; int j0=0; fp1=fopen(in_filename,"rb"); 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(pwd[++j0]); ch=fgetc(fp1); while(!feof(fp1)){ fputc(ch^pwd[j>=j0?j=0:j++],fp2); ch=fgetc(fp1); } fclose(fp1); fclose(fp2);}