VS2010——MFC版对TXT文档加解密编码

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/wangduanqiugao/article/details/78019816

一. 加解密作用说明
   
    本文作用用于对TXT文档进行加密,转化成一个有规律解读的乱码文档,主要是为防止其他对TXT文档的读取与修改
    解密的规律是自身已知并设定的,就可以嵌入程序里读取到已加密的TXT文档(当然已加密的TXT文件名的后缀也可以修改的哦)
    望断*秋高也是为了让某个程序读取到TXT配置文件,但不希望别人查看读懂与修改;才对其加密成乱码,同时程序可以解密读取运行!!

二. 加密编码步骤:
    1. 添加一个按键控件(加密),双击并创建其函数

//读取配置文件
Cstring fPath("./wangduan.txt");
CFile openFile;
Bool bFile = openFile.Open(fPath,CFile::modeRead);
//同根目录下判断是否打开
if(!bFile)
{
  MessageBox(_T("此路径无望断"),_T("错误"),MB_ICONINFORMATION);
  exit(0);
}
DWORD openSize = (DWORD)openFile.GetLength();
char* buf = new char[openSize + 1];
memset(buf,0,sizeof(char) * (openSize + 1));
openFile.Read(buf,openSize);
openFile.Close();
//加密算法
for(unsigned int i = 0; i < openSize; i++)
{
  buf[i] = 255 - buf[i];
}
//写入加密文件
Cstring wPath("./qiugao.xie");
CFile writeFile;
writeFile.Open(wPath,CFile::modeWrite | CFile::modeCreate);
writeFile.Write(buf,openSize);
writeFile.Close();
MessageBox(_T("已加密"),_T("成功"),MB_ICONINFORMATION);


三. 解密编码步骤:
    1. 添加一个按键控件(解密),双击并创建其函数

//读取加密文件
Cstring fPath("./qiugao.xie");
CFile openFile;
Bool bFile = openFile.Open(fPath,CFile::modeRead);
//同根目录下判断是否打开
if(!bFile)
{
  MessageBox(_T("此路径无秋高"),_T("错误"),MB_ICONINFORMATION);
  exit(0);
}
DWORD openSize = (DWORD)openFile.GetLength();
char* buf = new char[openSize + 1];
memset(buf,0,sizeof(char) * (openSize + 1));
openFile.Read(buf,openSize);
openFile.Close();
//解密算法
for(unsigned int i = 0; i < openSize; i++)
{
  buf[i] = 255 - buf[i];
}
//写入解密文件
Cstring wPath("./wangduan.txt");
CFile writeFile;
writeFile.Open(wPath,CFile::modeWrite | CFile::modeCreate);
writeFile.Write(buf,openSize);
writeFile.Close();
MessageBox(_T("已解密"),_T("成功"),MB_ICONINFORMATION);

注:为何加解密的算法都为:buf[i] = 255 - buf[i],当然算法可以自己设定的
答:理解为:buf[i] = 255 - (255 - buf[i]);也防止了ASCII溢出(注意细节)

完整点的记得添加一个头文件:afxdialogex.h



猜你喜欢

转载自blog.csdn.net/wangduanqiugao/article/details/78019816