access数据库密码找回方法详解

  在Access数据库中,为了安全起见,可以为所建的数据库设置密码。但是,密码忘了怎么办?别急,这里介绍一种找回密码的方法。

  用Access所建的数据库,在库文件的地址00000042处开始的13个字节是Access库的密码位。如果一个未加密的库,这13个字节原始数据依次为:86 FB 37 5D 44 9C FA C6 28 E6 13。事实上,当你设置了密码后,Access就将你的密码(请注意你所输入的密码是本文字符)的ACSII码与以上的13个字节数据进行异或操作,因此,从库文件的地址00000042开始的13个字节就变成了密钥了。例如,如果你设置的密码为abc,经过异或操作后,则从00000042处开始的13个字节的数据变成了E7 99 8F 37 5D 44 9C FA C6 28 E6 13。一个数据经过一次异或操作后,再一次经过同样的异或操作就可还原了。因此,对已经设置了密码的Access库,只要将13个密钥数据与原始的13个数据进行一次异或操作就可得到密码了。

  以下是一个C语言的破解程序:

  /*假设加密后的Access库为myacc.mdb,并存放在C盘的根目录下*/

  #include ″stdio.h″

  main()

  {FILE * fp

  char mm0[13]={0x86,0xfb,0xec,0x37,0x5d,0x44,0x9c,0xfa,0xc6,0x5e,0x28,0xe6,0x13};

  /*这是13个原始数据*/

  char mml[13],mm2[13];

  /*mm1用来存放加密后的13个密钥;mm2用来存放密码*/

  int i,k;

  fp=fopen(″c:myacc.mdb″,″rb″);

  if(fp=NULL){

  printf(″n不能打开该库!″);

  exit(0);}

  rewind(fp);fseek(fp,0x42L,0);

  fread(mm1,13,1,fp);/*读取密钥*/

  for(i=0;i<13;i++){

  mm2[i]=mm0[i]^mm[i];*/原始数据与密钥异或*/

  else

  break;}

  k=1;fclose(fp);

  if(k=0)

  printf(″未设密码!″);

  else{printf(″n密码是:n″);

  for(i=0;ibr>   printf(″%c,mm2[i]″);}}

 

  顺便提一句,Access库设置密码时,虽然允许输入最多14个密码字符,但只有前13个有效。

时间: 2024-11-03 21:02:16

access数据库密码找回方法详解的相关文章

Mysql忘记密码修改方法详解

  好久没有用数据库,难免把数据库的密码给忘了,那如果mysql 的数据库密码忘了该怎么办呢?这里介绍两种简单的方法可以重设密码! Windows系统下如何重设密码 如果你是服务器是 windows xp/2000/2003/nt 都可以使用这个方法来找回丢失 MYSQL超级管理员root的密码 1,停止MYSQL服务,CMD打开DOS窗口,输入 net stop mysql   2,在CMD命令行窗口,进入MYSQL安装目录 比如 d:mysql20080505in   3,进入mysql安全

FlashFXP中查看ftp密码的方法详解

给各位来详细的解析分享一下FlashFXP中查看ftp密码的方法. 方法解析: 1.点击菜单栏[属性]>[参数选择],或者按快捷键F6.   FlashFXP 2.在参数选择界面,点击左侧的[选项],然后勾选右侧下方安全性下的"在选择密码字段时展现密码".   FlashFXP 3.在菜单栏打开"站点管理器"或按快捷键F4,在站点管理器界面将鼠标光标放到密码输入框点击一下就能看到密码明文显示出来了. 好了,以上的信息就是小编给各位带来的详细的FlashFXP中

Android编程之数据库的创建方法详解

本文实例讲述了Android编程之数据库的创建方法.分享给大家供大家参考,具体如下: 主java package com.itheima.createdatabase; import android.app.Activity; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; public class MainActivity exten

php SQLite数据库的配置方法详解

SQLite数据库的配置   1.打开php.ini   2.启用extension=php_sqlite.dll扩展(如果需要支持PDO连接的话还需要启用extension=php_pdo_sqlite.dll扩展)   3.重启Apache服务器 sqlite中比较常用的函数   打开或者创建数据库操作:sqlite_open(string 目标数据库的名称[,int 操作该数据库的读写模式,string 返回数据库的错误信息]);//使用该方法的时候,如果第一个参数中指定的数据库已经存在的

忘记电脑密码怎么办?——重置电脑密码的方法详解

有时我们有忘记管理员登陆密码或CMOS密码的情况,关于忘记密码后如何登陆系统网上有很多种解决方法, 比如在开机时按两次ctrl+alt+del打开登陆框,输入administrator以登陆系统不适用于电脑只有一个管理员帐户(administrator)的情况.开机进入带命令行的安全模式,然后使用net user命令来创建帐户似乎依旧不适用于上述只有一个管理员帐户的情况. 下面介绍的是DOS下修改sam文件以删除帐户密码和两种Win PE下使用小软件来删除帐户密码的方法.本文介绍的在Win PE

oracle数据库tns配置方法详解_oracle

TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC.如果通过TNS连接Oracle,那么客户端必须安装Oracle client

Linux VPS修改默认ROOT用户密码的方法详解

如果我们要修改ROOT默认密码,一般可以通过2个方法,有些面板就自带可以修改密码的,我们可以直接在面板中修改,如果没有就选择这篇文章介绍的用SSH登录原始密码之后修改新的密码. 登录SSH之后,然后输入: passwd 输入命令之后,我们就可以直接输入两次新的密码. ssh-root-passwd 个人建议,我们最好把端口和密码一起修改. 如果你忘记了root用户密码可以参考下面方法来解决 (一)Linux 系统密码破解 1.在grub选项菜单按e进入编辑模式 2.编辑kernel那行 /ini

百度云Web版删除文件找回方法详解

给各位百度云软件的使用者们来详细的解析分享一下百度云Web版删除的文件找回的方法. 方法分享: 百度云不小心删除的文件,用户可以在回收站里,选择需要还原的文件,点击"还原"即可.   说明:回收站里的文件不占您的空间,但是只保留10天,过了10天,百度云会自动清除这些数据.所以请您在10天以内还原不小心删除的文件. 好了,以上的信息就是小编给各位百度云的这一款软件使用者们带来的详细的百度云Web版删除的文件找回的方法解析分享的全部内容了,各位看到这里的软件使用者们小编相信大家现在那是非

小米路由器上网设置及密码设置方法详解

小米路由器如何设置 首先如果有个无线路由器,那么就先把电源接通,然后插上网线,进线插在wan口(一般是蓝色口),然后跟电脑连接的网线就随便插哪一个lan口啦,做好这些工作后,然后你会看到路由器后面有个地址跟帐号密码,连接好后在浏览器输入在路由器看到的地址,一般是192.168.1.1(当然如果你家是用电话线上网那就还要多准备一个调制调解器,俗称"猫") 然后进入,输入相应的帐号跟密码,一般新买来的都是admin 确实后进入操作界面,你会在左边看到一个设置向导,进击进入(一般的都是自动弹