Visual C++ 是一种功能十分强大的程序设计语言,利用它可以很方便。快捷的开发出Windows 下的各种应用程序。尤其是其内置了数据库的接口,可使我们毫不费力地操作Accse,FoxBASE+ 等许多数据库文件。但在安全性上,由于FoxBASE+ 是一种早期的产品,所以,不能像Accse 那样为数据库文件本身加密,这就可以让入侵者直接对数据库操作而导致数据的损失。
本文提供的方法可以做为一个小的模块放到你的应用程序中调用,实现数据库的加解密。
首先,打开Visual C++ 5.0 选择New 建立一个基于对话框的应用程序, 然后在对话框上面放置两个按钮,其中一个标题叫做加密,另一个标题叫做解密。对应实现如下:
void CAa6Dlg::OnButton1() (对应于加密按钮的单击)
{
int buf2[512],tcd,tcd1,*p1,i;
CFile cfile1;
char *pfilename;
pfilename="c:\\aa.dbf";
cfile1.Open(pfilename,CFile::modeReadWrite);
cfile1.Read(buf2,32);
p1=(int*)buf2;
p1=p1+1;
tcd=*p1;
tcd1=(tcd-1)/2;
cfile1.SeekToBegin();
cfile1.Read(buf2,tcd);
buf2[0]=buf2[0]+0x0017;
for (i=16;i
这样,用本程序的加密功能加密的Fox 系列数据库(如Foxbase+, Foxpro 等),用Foxbase+,Foxpro 等数据库软件无法对其进行读写。只有经过解密之后,才能被其识别。