程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 用VC++給Foxbase數據庫文件加密

用VC++給Foxbase數據庫文件加密

編輯:關於VC++

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〈tcd1;i++)
buf2[i]="buf2[i]^0xffff;"
cfile1.SeekToBegin();
cfile1.Write(buf2,tcd);
cfile1.Flush();
cfile1.Close;
}
void CAa6Dlg::OnButton2()(對應與解密按鈕的單擊)
{ // TODO: Add your control notification handler code here
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<" tcd1;i++) buf2[i]="buf2[i]^0xffff;"
cfile1.SeekToBegin(); cfile1.Write(buf2,tcd);
cfile1.Flush(); cfile1.Close;
}

這樣,用本程序的加密功能加密的Fox 系列數據庫(如Foxbase+, Foxpro 等),用Foxbase+,Foxpro 等數據庫軟件無法對其進行讀寫。只有經過解密之後,才能被其識別。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved