[高分]C语言对字符串的加密和解密

[高分]C语言对字符串的加密和解密,第1张

char

ch,name[30],over

FILE

*fp

printf("请输入要加密的文件名(正确的做法是:先把解密的数不知道,你想要什么样的加密算法。

AES不错。不过AES是对16个字节长度加核哗密,要是不是做举16的倍数,处理有点麻烦据保存到字符串纯氏碧里,全部结束之后,一次性把解密

加密解密的算法都没错,错的是解密程序里的文件 *** 链盯作方法。rewind(fp)没有必要。因为fp已经被close了。一般不推荐同时对一个文件又读又写,因为这样会导致很多缓冲区同步的问题。比如:fputc()和getc()之间,必须要调用fflush(fp)即使这样,还是会有问题。比如回车御汪,getc()可能会返回两个字符,\n和\a。但是用fputc()写入的时候,分棚拆和别写入\n和\a会把第二行第一个字符覆盖掉。正确的做法是:先把解密的数据保存到字符串里,全部结束之后,一次性把解密完的字符串写到文件里去。voidmain(){charch,name[30]charcontent[1000]intn=0FILE*fpprintf("name:\a")gets(name)fp=fopen(name,"r+")if(fp==NULL){printf("Nofile:%s!\n\a",name)return}ch=getc(fp)while(ch!=EOF){if((isalpha(ch))!=0){if((ch>='a'&&ch='A'&&ch<='D'))ch=ch+22elsech=ch-4}content[n++]=chch=getc(fp)//ch=getc(fp)}content[n]=0rewind(fp)fprintf(fp,"%s",content)fclose(fp)printf("%sok\a\n",name)printf("content:%s\n",content)printf("\n")}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12510195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存