国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Access > 正文

ACCESS找回忘了的密碼的原理

2024-09-07 19:03:13
字體:
來源:轉載
供稿:網友

在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個有效。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 禹州市| 荣成市| 德格县| 修武县| 甘孜| 义马市| 白朗县| 儋州市| 湖州市| 伊宁县| 剑川县| 城步| 新巴尔虎左旗| 桦川县| 镇平县| 高邑县| 景洪市| 蒙山县| 呼伦贝尔市| 阿拉善右旗| 临澧县| 临漳县| 新泰市| 太湖县| 勐海县| 班玛县| 西丰县| 通榆县| 石景山区| 綦江县| 治多县| 湖北省| 古田县| 永新县| 丹阳市| 阿拉尔市| 湘潭市| 乡城县| 乐至县| 聂拉木县| 延寿县|