使用语言:C语言
功能: 实现像HTML\TXT等普通文本文件的加密
实现过程: 通过逐个顺序读取指定文件中的字符,并对其进行一定有规律的操作如全部加上某一个数或减去某一个数;本文采取统一对每个读到的字符取反以实现加密,解密使只需对同一个文件进行再次取反即可。
实现结果:
加密前--》
将文本文件至于与生成的.exe同一目录下,输入文件名进行加密
加密结果:
具体实现程序:
#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;
}