微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题破解ACCESS数据库密码
栏目软件世界
作者姜卫冬
发布2001年21期
  我们在使用Access数据库时,有时忘记了密码,怎么办?网上的解密器不少,但我们要去找这样的解密器也很费时,如果你对程序的编写有一点基础,那么,让我们动手做一个专用解密器吧。
  原理:首先,我们要了解Access数据库的加密方法。Access数据库的有效密码为13位,在不加密时,数据库的第67至79位为一固定的字符串,每位的ASCII码值分别为86,FB,EC,37,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 source(12) As Byte
  Dim i As Integer
  source(0) = &H86
  source(1) = &HFB
  source(2) = &HEC
  source(3) = &H37
  source(4) = &H5D
  source(5) = &H44
  source(6) = &H9C
  source(7) = &HFA
  source(8) = &HC6
  source(9) = &H5E
  source(10) = &H28
  source(11) = &HE6
  source(12) = &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 = source(i)
  Then Exit For
  password = password & Chr((temp Xor source(i)))  
  Next
  Close #1
  If Len(password)= 0 Then
  Text1.Text = "该数据库没有加密!"
  Else
  Text1.Text = "该数据库的密码为:" + password
  End If
  End Sub