|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
“对于MySQL数据库,无论是在开发方面,还是支持方面,现在有大量强大的MySQL学习教程可以选择。每一个新手开发者可以轻松地使用MySQL数据库进行开发。在Access数据库中,为了平安起见,能够为所建的数据库设置暗码。可是,暗码忘了怎样办?别急,这里先容一种找回暗码的办法。
用Access所建的数据库,在库文件的地点00000042处入手下手的13个字节是Access库的暗码位。假如一个未加密的库,这13个字节原始数据顺次为:86FB375D449CFAC628E613。现实上,当你设置了暗码后,Access就将你的暗码(请注重你所输出的暗码是本笔墨符)的ACSII码与以上的13个字节数据举行异或操纵,因而,从库文件的地点00000042入手下手的13个字节就酿成了密钥了。比方,假如你设置的暗码为abc,经由异或操纵后,则从00000042处入手下手的13个字节的数据酿成了E7998F375D449CFAC628E613。一个数据经由一次异或操纵后,再一次经由一样的异或操纵便可复原了。因而,对已设置了暗码的Access库,只需将13个密钥数据与原始的13个数据举行一次异或操纵便可失掉暗码了。
以下是一个C言语的破解程序:
/*假定加密后的Access库为myacc.mdb,并寄存在C盘的根目次下*/
#include″stdio.h″
main()
{FILE*fp
charmm0[13]={0x86,0xfb,0xec,0x37,0x5d,0x44,0x9c,0xfa,0xc6,0x5e,0x28,0xe6,0x13};
/*这是13个原始数据*/
charmml[13],mm2[13];
/*mm1用来寄存加密后的13个密钥;mm2用来寄存暗码*/
inti,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个无效。即使对于MySQL的商业化的企业版来说,也没有高昂的许可证成本,当你将其与像甲骨文和微软之类的大型专有商业数据库比较的话。 |
|