该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是一个简单的加密算法程序
它可以通过用户输入密码为密钥把某个文件进行加密
需要大家掌握的是:
异或运算在加密中的运用以及对文件的字节码转换
本程序使用了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);
}