防止Access 2000密码被破译的方法
来源:ddvip.com 发布时间:2008-11-20 16:48:00
如果你过分信任 Access 2000数据库的密码保护,你可能会因此而蒙受损失。这是因为Access 2000的数据库级密码并不安全,相反它很脆弱,甚至下面这段非常小的程序就可以攻破它:
程序一(VB6):Access 2000密码破译
Private Sub Command1_Click()
Const Offset = &H43 文件偏移地址:Access数据库从此处开始存放加密密码
Dim bEmpty(1 To 2) As Byte, bPass(1 To 2) As Byte
Dim i As Integer, Password As String
打开一个空数据库作为参照
Open "D:VB6_TestMDB_PasswordNew_Empty_DB.mdb" For Binary As #1
打开被密码保护的数据库
Open "D:VB6_TestMDB_PasswordPass_Protected_DB.mdb" For Binary As #2
Seek #1, Offset
Seek #2, Offset
For i = 1 To 20 ' Access 2000 数据库密码最长允许20位
Get #1, , bEmpty ' 其中每位密码占两个字节
Get #2, , bPass ' 一个汉字也仅是一位密码,占两个字节
If (bEmpty(1) Xor bPass(1)) <> 0 Then
Password = Password + Chr(bEmpty(1) Xor bPass(1)) ' 将密码解密
End If
Next
Close 1, 2
MsgBox "Password:" + Password ' 显示密码
End Sub
一、深入分析
上述程序成功的关键是使用了一个空数据库(New_Empty_DB.mdb)。该数据库的创建日期必须与被密码保护的数据库(Pass_Protected_DB.mdb)相一致。 换句话说,Access 2000 仅仅是使用“数据库创建日期”来加密用户密码。
应注意的是:上面的“创建日期”只是操作系统级的,也就是 Windows记录在文件夹目录里的信息(根据文件名的长短,每个文件在目录里占用至少32个字节,包括:文件名、属性、文件大小、首蔟号、创建时间、修改时间和访问时间等)。


猜你喜欢
- 计算两个信号的交叉谱密度结果展示:完整代码:import numpy as npimport matplotlib.pyplot
- 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引
- 大家好,使用 Python Flask 创建 URL 缩短器是一个有趣而简单的项目,可以帮助您深入了解 Web 开发的世界。Flask 是
- 暴力的重启服务方案一般服务器重启可以直接通过 kill 命令杀死进程,然后重新启动一个新的进程即可。但这种方法比较粗暴,有可能导致某些正在处
- 现在有一id=test的下拉框,怎么拿到选中的那个值呢? 分别使用javascript原生的方法和jquery方法 <select i
- 本文实例讲述了jsp+ajax实现无刷新上传文件的方法。分享给大家供大家参考,具体如下:列表页:selectaddress.jspjs页:a
- 本文实例为大家分享了Python实现简单扫雷游戏的具体代码,供大家参考,具体内容如下#coding: utf-8__note__ = &qu
- 到2019年初,Python3已经更新到了Python
- 一、背景先要从 InnoDB 的索引实现说起,InnoDB 有两大类索引:聚集索引 (clustered index)普通索引 (secon
- 假设前提:每天晚上10点到早上5点,每10分钟定时执行存储过程。实现方式:第一种是利用Mysql本身实现,制定event定时任务,可以借助N
- 当然有其它工具可以做这件事,但如果客户不允许你在服务器乱装东西时这个脚本就会有用了。 DECLARE @tbImportTables tab
- 全局引用公共的组件及公共的JS文件1. 创建一个公共的目录 timeline ,里面包含 timeline.js 和 timeline.vu
- 作者的blog:http://www.planabc.netz-index属性简介引用:z-index : auto | numberaut
- 本文实例讲述了PHP动态生成指定大小随机图片的方法。分享给大家供大家参考,具体如下:<?php$image_width = 100;$
- 受到领导的嘱托,接手了一个java项目,要进行重构,同时了项目的整体建设要满足信创的要求。那么首先就要满足两点:1,使用国产数据库达梦8替换
- 下次用python画图的时候选色选点都可以直接参考这边,牛逼!分享给大家,也给自己留个笔记。参考网址:http://stackoverflo
- 1:listWidget 以滚动窗口显示文件下的所有文件: self.listWidget = QtWidget
- 今天遇到下图这种问题,文字过长,显示不全。折腾了老半天,在网上搜了半天也找不到解决方案。于是问了下同事,同事提到了<optgroup&
- 插入排序插入排序是一种简单的排序算法,以数组为例,我们可以把数组看成是多个数组组成。插入排序的基本思想是往前面已排好序的数组中插入一个元素,
- 本文主要跟大家分享在类unix操作系统下supervisor的使用以及一些关于进程的知识一、问题背景1、背景如何才能让一个进程摆脱终端,获得