在Access 2000 數據庫中,為了安全起見,可以為所建的數據庫設置密碼。但是,密碼忘了怎麼辦?別急,這裡介紹一種密碼破解方法。
用磁盤編輯工具打開Access 2000 所建的數據庫,在庫文件的地址00000042處開始的40個字節是Access 2000庫的密碼位。如果一個未加密的庫,這40個字節原始數據依次為: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 。當你給數據庫設置了密碼後,這40個字節就變成了密鑰。因此,要破解密碼而不需保持原庫的密碼,只要將00000042 處開始的40個字節還原成原始數據就行了。要做到這一點,你可用磁盤編輯工具或將以下所附的程序稍加修改,把以上所列40個數據填到00000042開始處。
但是,有沒有辦法既能破解密碼又能保持原密碼呢?有。要做到這一點,必須搞清楚Access 2000庫的加密原理。事實上,Access 2000庫的加密原理很簡單。當你設置了密碼後,Access 2000 就將你的密碼(請注意你所輸入的密碼是ASCII字符)的ASCII碼與以上的40個字節數據進行異或操作,因此,從庫文件的地址00000042開始的40個字節就變成了密鑰了。例如,如果你設置的密碼為12345678901234567890(注意:最多只能設20個ASCII字符),經過異或操作後,則從00000042處開始的40個字節的數據就變成了 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 。大家都知道,一個數據經過一次異或操作後,再一次經過同樣的異或操作就可還原了。因此,對已經設置了密碼的Access 2000庫,只要將40個密鑰數據與原始的40個數據進行一次異或操作就可得到密碼了。
順便提一下,由於Access 2000對每個密碼字符采用雙字節表示,故40個字節原始數據可依次分為20組,每組代表一個密碼字符,進行異或操作的是每組的第一個字節,第二個字節不變。