用VB编写查看MDB文件密码的程序

凡是使用 ACCESS 的人都知道,为了保护自己的数据不被别人偷看,可以给自己的MDB数据库文件设置密码,方法是选取“工具/安全/设置数据库密码” 菜单,然后输入密码;以后每次打开数据库文件时,系统就会首先要求输入密码,只有输入正确才被允许访问数据库。((图1)

图1
图1

   但是有些时候会把自己设置的密码遗失或忘记,这时就需要有一种方法来查看 MDB 文件的密码。在这里,我用 VB 编写了一段小程序,该程序代码如下:
   Option Explicit
   Private Sub cmd_Click()
   On Error GoTo PROC
   Dim strbytes(13) As Byte '该数组存放从文件中取出的经过加密的密码
   Dim strfile As String '该变量存放MDB文件路径以及文件名
   Dim strpw As String '该变量存放经还原后的密码
   '选择要查看密码的MDB文件
   With cdg
   .CancelError = True
   .Filter =“*.mdb|*.mdb”
   .ShowOpen
   strfile = .FileName
   End With
   If Dir(strfile) <> “” Then
   txt(0) = Trim(strfile)
   Open Trim(strfile) For Binary Access _
   Read As #1' 以读取字节流的方式打开件
   Get #1, 67, strbytes '从文件位置“67” 处读取字节流
   Close #1 ' 关闭文件
   strpw = “”
   If ((strbytes(0) Xor 134) = 0) Then
   strpw = “该数据库没有密码”
   Else
   ' 以下这段代码用来还原密码
   ' 即数组中每个字节和一个相应的数值(16进制)做“异或” 运算
   strpw = strpw & Chr$(strbytes(0) Xor &H86)
   strpw = strpw & Chr$(strbytes(1) Xor &HFB)
   strpw = strpw & Chr$(strbytes(2) Xor &HEC)
   strpw = strpw & Chr$(strbytes(3) Xor &H37)
   strpw = strpw & Chr$(strbytes(4) Xor &H5D)
   strpw = strpw & Chr$(strbytes(5) Xor &H44)
   strpw = strpw & Chr$(strbytes(6) Xor &H9C)
   strpw = strpw & Chr$(strbytes(7) Xor &HFA)
   strpw = strpw & Chr$(strbytes(8) Xor &HC6)
   strpw = strpw & Chr$(strbytes(9) Xor &H5E)
   strpw = strpw & Chr$(strbytes(10) Xor &H28)
   strpw = strpw & Chr$(strbytes(11) Xor &HE6)
   strpw = strpw & Chr$(strbytes(12) Xor &H13)
   End If
   txt(1) = strpw ' 输出密码
   End If
   Exit Sub
   PROC
   End Sub
   程序简介:
   该程序包含一个窗体frm_mdbpassword;
   该窗体包含:一个CommandButton控件cmd选择MDB文件并输出密码;
   一个Image控件Image1;
   一个CommonDialog控件cdg显示文件打开选择对话框;
   两个Label控件,lbl(0)和lbl(1);
   两个TextBox控件,txt(0)显示MDB文件路径和文件名称;txt(1)显示该MDB文件的密码。
   注:该程序在中文WIN98中文Visual Basic 6.0中调试通过。