#include<stdio.h>
#include<string.h>
//加密算法 +128
//加密 改变原文件中的内容
int encode(const char *file){
FILE *fp=fopen(file,"r+);//读写
if(fp==NULL){
perror(file);
return -1;
}
char ch=0;
//读取一个字符
while(fread(&ch,sizeof(char),1,fp)>0){
ch+=128;
fseek(fp,-1,SEEK_CUR);//读取位置偏移回去
fwrite(&ch,sizeof(char),1,fp);//写回原字符位置
}
fclose(fp);
return 0;
}
int decode(const char *file){
FILE *fp=fopen(file,"r+");
if(fp==NULL){
perror(file);
return -1;
}
char ch=0;
while(fread(&ch,sizeof(char),1,fp)>0){
ch-=128;
fseek(fp,-1,SEEK_CUR);
fwrite(&ch,sizeof(char),1,fp);
}
fclose(fp);
return 0;
}
//encode c(加密) d(解密) file
int main(int argc,char *argv[]){
if(argc<3){
printf("%s c/d file\n",argv[0]);
return -1;
}
if(strcmp(argv[1],"c")==0){//加密
encode(argv[2]);
}else if(strcmp(argv[1],"d")==0){//解密
decode(argv[2]);
}else{
printf("%s c/d %s\n",argv[0],argv[2]);
}
return 0;
}
十一、C语言加密解密
于 2022-01-20 15:48:11 首次发布