在Access 2000 數(shù)據(jù)庫(kù)中,為了安全起見,可以為所建的數(shù)據(jù)庫(kù)設(shè)置密碼。但是,密碼忘了怎么辦?別急,這里介紹一種密碼破解方法。
用磁盤編輯工具打開Access 2000 所建的數(shù)據(jù)庫(kù),在庫(kù)文件的地址00000042處開始的40個(gè)字節(jié)是Access 2000庫(kù)的密碼位。如果一個(gè)未加密的庫(kù),這40個(gè)字節(jié)原始數(shù)據(jù)依次為:29 77 EC 37 F2 C8 9C FA 69 D2 28 E6 BC 3A 8A 60 FB 18 7B 36 5A FE DF B1 D8 78 13 43 60 23 B1 33 9B ED 79 5B 3D 39 7C 2A 。當(dāng)你給數(shù)據(jù)庫(kù)設(shè)置了密碼后,這40個(gè)字節(jié)就變成了密鑰。因此,要破解密碼而不需保持原庫(kù)的密碼,只要將00000042 處開始的40個(gè)字節(jié)還原成原始數(shù)據(jù)就行了。要做到這一點(diǎn),你可用磁盤編輯工具或?qū)⒁韵滤降某绦蛏约有薷模岩陨纤?0個(gè)數(shù)據(jù)填到00000042開始處。
但是,有沒(méi)有辦法既能破解密碼又能保持原密碼呢?有。要做到這一點(diǎn),必須搞清楚Access 2000庫(kù)的加密原理。事實(shí)上,Access 2000庫(kù)的加密原理很簡(jiǎn)單。當(dāng)你設(shè)置了密碼后,Access 2000 就將你的密碼(請(qǐng)注意你所輸入的密碼是ASCII字符)的ASCII碼與以上的40個(gè)字節(jié)數(shù)據(jù)進(jìn)行異或操作,因此,從庫(kù)文件的地址00000042開始的40個(gè)字節(jié)就變成了密鑰了。例如,如果你設(shè)置的密碼為12345678901234567890(注意:最多只能設(shè)20個(gè)ASCII字符),經(jīng)過(guò)異或操作后,則從00000042處開始的40個(gè)字節(jié)的數(shù)據(jù)就變成了 18 77 DE 37 C1 C8 A8 FA 5C D2 1E E6 8B 3A B2 60 C2 18 4B 36 6B FE ED B1 EB 78 27 43 55 23 87 33 AC ED 41 5B 04 39 4C 2A 。大家都知道,一個(gè)數(shù)據(jù)經(jīng)過(guò)一次異或操作后,再一次經(jīng)過(guò)同樣的異或操作就可還原了。因此,對(duì)已經(jīng)設(shè)置了密碼的Access 2000庫(kù),只要將40個(gè)密鑰數(shù)據(jù)與原始的40個(gè)數(shù)據(jù)進(jìn)行一次異或操作就可得到密碼了。
順便提一下,由于ACCESS 2000對(duì)每個(gè)密碼字符采用雙字節(jié)表示,故40個(gè)字節(jié)原始數(shù)據(jù)可依次分為20組,每組代表一個(gè)密碼字符,進(jìn)行異或操作的是每組的第一個(gè)字節(jié),第二個(gè)字節(jié)不變。