您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

找回忘了Access的密码的原理

添加时间:2011-1-21  添加: admin 

在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(″ 不能打开该库!″);
   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(″ 密码是: ″);
   for(i=0;ibr>   printf(″%c,mm2[i]″);}}
   顺便提一句,Access库设置密码时,虽然允许输入最多14个密码字符,但只有前13个有效。

关键字:Access 密码

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站