用fopen,fclose,fseek,ftell,fwrite,fread,这些函数写一个加密解密的代码 15
用fopen,fclose,fseek,ftell,fwrite,fread,这些函数写一个加密解密的代码,,,不用二级指针...
用fopen,fclose,fseek,ftell,fwrite,fread,这些函数写一个加密解密的代码,,,不用二级指针
展开
展开全部
最简单的加密解密就是 fopen打开要加密的文件,fseek+ftell得到文件大小,之后fread读取全部数据,将数据分为2半,前后颠倒,在用fwrite清空原先文件数据 并写入颠倒后的数据 这样就实现了简单的不能再简单的加密了,反之亦然。
BOOL FileChange(char * path)
{
long length;
long last;
FILE * fc=fopen(path,"rb");
if(NULL==fc)
return 0;
fseek(fc,0,SEEK_END);
length=ftell(fc);
if((length%2)==0)
{
last=length-(length/2);
fseek(fc,0,SEEK_SET);
char *jo=(char *)malloc(length-last);
char *jo1=(char *)malloc(last);
fread(jo,length-last,1,fc);
fseek(fc,length-last,SEEK_SET);
fread(jo1,last,1,fc);
fclose(fc);
FILE * fw=fopen(path,"wb+");
fwrite(jo1,last,1,fw);
fwrite(jo,length-last,1,fw);
fclose(fw);
}
else
{
length--;
last=length-(length/2);
fseek(fc,0,SEEK_SET);
char *jo=(char *)malloc(length-last);
char *jo1=(char *)malloc(last);
char *jo2=(char *)malloc(1);
fread(jo,length-last,1,fc);
fseek(fc,length-last,SEEK_SET);
fread(jo1,last,1,fc);
fread(jo2,1,1,fc);
fclose(fc);
FILE * fw=fopen(path,"wb+");
fwrite(jo1,last,1,fw);
fwrite(jo,length-last,1,fw);
fwrite(jo2,1,1,fw);
free(jo);
free(jo1);
free(jo2);
fclose(fw);
}
return 0;
}
使用这个函数就可以让文件数据前后颠倒了 文件便无法运行了,再次执行这函数 数据颠倒过来后,就又可以运行了
BOOL FileChange(char * path)
{
long length;
long last;
FILE * fc=fopen(path,"rb");
if(NULL==fc)
return 0;
fseek(fc,0,SEEK_END);
length=ftell(fc);
if((length%2)==0)
{
last=length-(length/2);
fseek(fc,0,SEEK_SET);
char *jo=(char *)malloc(length-last);
char *jo1=(char *)malloc(last);
fread(jo,length-last,1,fc);
fseek(fc,length-last,SEEK_SET);
fread(jo1,last,1,fc);
fclose(fc);
FILE * fw=fopen(path,"wb+");
fwrite(jo1,last,1,fw);
fwrite(jo,length-last,1,fw);
fclose(fw);
}
else
{
length--;
last=length-(length/2);
fseek(fc,0,SEEK_SET);
char *jo=(char *)malloc(length-last);
char *jo1=(char *)malloc(last);
char *jo2=(char *)malloc(1);
fread(jo,length-last,1,fc);
fseek(fc,length-last,SEEK_SET);
fread(jo1,last,1,fc);
fread(jo2,1,1,fc);
fclose(fc);
FILE * fw=fopen(path,"wb+");
fwrite(jo1,last,1,fw);
fwrite(jo,length-last,1,fw);
fwrite(jo2,1,1,fw);
free(jo);
free(jo1);
free(jo2);
fclose(fw);
}
return 0;
}
使用这个函数就可以让文件数据前后颠倒了 文件便无法运行了,再次执行这函数 数据颠倒过来后,就又可以运行了
追问
运行后,出现必须定义入口点,,怎么回事啊?我用的是2010VS
追答
BOOL FileChange(char * path)
{
……………………
………………
}
int main()
{
char buff[250];
printf("请输入路径“);
scnaf("%s",&buff);
FileChange(buff);
}
大概这样
灵德
2024-11-19 广告
2024-11-19 广告
由化工方面的博士、教授和企业的高级技术人员与管理人员创建的高科技化工企业。主要从事下列产品的开发、生产和相关的技术服务:▼高纯电子化学品(主要为高纯季铵碱 )▼季铵碱系列▼季铵盐系列▼季膦化合物系列▼相转移催化剂(PTC)▼均苯四甲酸 (P...
点击进入详情页
本回答由灵德提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询