我们有时在打开一个Access数据库时,往往会发现打开时弹出这样的一个窗口
![](https://www.cnblogs.com/images/cnblogs_com/yan2007/open1.jpg)
![](https://www.cnblogs.com/Emoticons/tusiji/203330198.gif)
首先打开Access,在菜单栏里点打开,找到你要选择加密的数据库,选中后,在打开按钮右下方选择以独占方式打开,如图:
![](https://www.cnblogs.com/images/cnblogs_com/yan2007/open.jpg)
关于解密:
原理:首先,我们要了解Access数据库的加密方法。Access数据库的有效密码为13位,在不加密时,数据库的第67至79位为一固定的字符串,每位的ASCII码值分别为86,FBEC37,5D,44,9C,FA,C6,5E,28,E6,13。加密时,分别用密码的每一位与67至79位的字符的ASCII码值进行异或运算,得到的一个新字符串,将它写回67至79位。
知道了加密方法,解密就比较容易了。将67至79位的字符的ASCII码值分别与“86,FB,EC,37,5D,44,9C,FA,C6,5E,28,E6,13”进行异或运算,即可得到密码。
下面我们用VB编个小程序,来实现Access数据库的解密。请在窗体上放置一个通用对话框控件Commondialog1,其Firlter属性设为“Access数据库文件.mdb”;文本框控件Text1,命令控件Command1,其Caption属性设为“取得密码”。代码如下:
Option Explicit
Private Sub Command1_Click
Dim password As String
Dim temp As Byte
Dim source12 As Byte
Dim i As Integer
source0 = &H86
source1 = &HFB
source2 = &HEC
source3 = &H37
source4 = &H5D
source5 = &H44
source6 = &H9C
source7 = &HFA
source8 = &HC6
source9 = &H5E
source10 = &H28
source11 = &HE6
source12 = &H13
CommonDialog1.ShowOpen
If CommonDialog1.FileName = ″″ Then Exit Sub
Open CommonDialog1.FileName For Binary As #1
For i = 0 To 12
Get #1 67 + i temp
If temp = sourcei Then Exit For
password = password & Chrtemp Xor sourcei
Next
Close #1
If Lenpassword = 0 Then
Text1.Text = ″该数据库没有加密!″
Else
Text1.Text = ″该数据库的密码为:″ + password
End If
End Sub。
好了,关于解密上面的原理我们根本不用过多了解,如果单纯为了解密的话,一个小工具就可以轻松搞定。
![](https://www.cnblogs.com/Emoticons/yoyocici/223854210.gif)
点击下载 AccessPassView_v1.12.exe
=======================================================================