其他分享
首页 > 其他分享> > 简易文本加密工具(C语言实现)

简易文本加密工具(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