简易文本加密工具(C语言实现)
作者:互联网
笔记中的一段,不记得是我写的还是网上看的了,总之我现在也会写,为避免麻烦还是乱设个转载。
思路
函数fgetc()可以每次从文件中读取一个字符
函数fputc()可以每次向文件写入一个字符
打开要加密的文件,同时创建一个临时文件,每次从要加密的文件中读取一个字符,对其进行运算(此处为取反)后再写入到临时文件中,实现简单的加密。
此处为取反,因此只需对文件再进行一次加密,即可恢复成明文。
源代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp; //声明文件指针变量
FILE *temp;
char ch;
char strFileName[30]; //定义供文件名使用的数组
char strTempBuff[256]; //定义一个缓冲区供要处理的文件使用
printf("Please input File name: ");
gets(strFileName); //输入要做加密处理的文件名
strFileName[29]='\0'; //给文件名最后一位赋值为‘\0’代表字符串结束符
//以读方式打开名为strFileName的文件并判断是否成功打开
if((fp = fopen(strFileName,"rb+"))==NULL)
{
printf("Open File %s Error!\n",strFileName);
return -1;
}
//以写方式创建并打开名为TempFile.pyq的文件并判断是否成功打开
if((temp=fopen("TempFile.pyq","wb+"))==NULL)
{
printf("Creat TemporaryFile Error!\n");
return -1;
}
//检查文件是否结束,文件未结束则由(!feof(fp))返回非零值
while(!feof(fp))
{
ch=fgetc(fp); //从fp指向的文件每次读取并返回遇到的一个字符,同时文件指针下移
//判断是否读到文件结束处
if((int)ch!=-1&&(int)ch!=0)
{
ch=~ch; //对读到的字符进行取反以实现简单加密
fputc(ch,temp); //每次将取反后字符重新送入temp指针指向处
}
}
fclose(temp); //关闭文件
fclose(fp); //关闭文件
//删除原文件
sprintf(strTempBuff,"Del %s",strFileName);
system(strTempBuff); //发出一个DOS命令
//将临时文件改名为原文件名
sprintf(strTempBuff,"Rename TempFile.pyq %s",strFileName);
system(strTempBuff);
return 0;
}
注释
1.exe文件与要加密的文件放在同一目录下
2.文件的打开方式
文件打开方式 | 含义 |
---|---|
r(只读) | 为输入打开一个文本文件 |
w(只写) | 为输出打开一个文本文件 |
a(追加) | 在文本文件末尾添加数据 |
rb(只读) | 为输入打开一个二进制文件 |
wb(只写) | 为输出打开一个二进制文件 |
ab(追加) | 在二进制文件末尾添加数据 |
r+(读/写) | 为读/写打开一个文本文件 |
w+(读/写) | 为读/写建立一个新的文本文件 |
a+(读/写) | 为读/写打开一个文本文件 |
rb+(读/写) | 为读/写打开一个二进制文件 |
wb+(读/写) | 为读/写建立一个新的二进制文件 |
ab+(读/写) | 为读/写打开一个二进制文件 |
end
标签:fp,文件,ch,加密,strFileName,C语言,打开,文本 来源: https://blog.csdn.net/weixin_47565708/article/details/113402573