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 等 数 据 库 软 件无 法 对 其 进 行 读 写。 只 有 经 过 解 密 之 后, 才 能 被 其识 别。