想利用ASCII码偏移的方法给一个txt文件加密,但是能力有限,没想出来,想参考大家的做法。
2条回答 默认 最新
- a5156520 2022-05-17 17:22关注
下面是一个实现,供参考:
#include <stdio.h> //编码加密 void encode(char * path,char *outpath){ FILE * fp = fopen(path,"r"); if(fp==NULL){ printf("打开源文件失败!\n"); return ; } FILE * outfp= fopen(outpath,"w"); if(outfp==NULL){ printf("打开加密文件失败!\n"); return ; } char str[512]; //默认文件最多512个ASCII码 int i=0; printf("%s源文件的内容为:\n",path); while(feof(fp)==0){ //如果文件没有结束 fscanf(fp,"%c",&str[i]); //从源文件读取一个字符 printf("%c",str[i]); //打印源文件的内容 fprintf(outfp,"%c",str[i]+25);//文件ASCII码加25进行简单加密 i++; //存入str数组下一个字符位置 } //关闭源文件和加密文件 fclose (fp); fclose(outfp); } //解密 void decode(char * outpath){ FILE * outfp= fopen(outpath,"r"); if(outfp==NULL){ printf("打开加密文件失败!\n"); return ; } printf("\n%s文件的解密后的内容如下:\n",outpath); int i=0; char str[512]; while(feof(outfp)==0){ fscanf(outfp,"%c",&str[i]); //读取一个字符从加密文件 printf("%c",str[i]-25); //打印解密后的文字 i++; } fclose(outfp); } int main(void){ encode("source20220517.txt","source20220517jiami.txt"); decode("source20220517jiami.txt"); }
在编译好的exe目录新建两个文件:一个是source20220517.txt为要加密的文件,一个source20220517jiami.txt存放加密后的文件
测试source20220517.txt的内容如下:北京上海广州经济发达!
运行结果:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用