access 的一些早期版本使用異或方法進行簡單加密,當忘記密碼時可以用同樣的辦法進行恢復.
以access2000版本為例,從42h位元組開始的後40位元組為unicode儲存的密碼資訊,與位元組組
0x0b,0x6d ,0xec ,0x37 ,0xd0 ,0xd2 ,0x9c ,0xfa ,0x4b ,0xc8 ,0x28 ,0xe6 ,0x9e ,0x20 ,0x8a ,
0x60 ,0xd9 ,0x02 ,0x7b ,0x36 ,0x78 ,0xe4 ,0xdf ,0xb1 ,0xfa ,0x62 ,0x13 ,0x43 ,0x42 ,0x39 ,
0xb1 ,0x33 ,0xb9 ,0xf7 ,0x79 ,0x5b ,0x1f ,0x23 ,0x7c ,0x2c
異或後即可還原.上述金鑰位元組組可通過新建access檔案後檢視得知.
access是以輕量化為目的設計的資料庫,在重要應用中應該採用更專業的資料庫產品,如microsoft sql server.
以下以c#為例,說明獲取access2000密碼的方法. 注意:解密結果應用unicode解碼輸出,以保證正常顯示.
using system;
using system.drawing;
using system.collections;
using system.***ponentmodel;
using system.windows.forms;
using system.data;
public class form1 : system.windows.forms.form
///
/// 清理所有正在使用的資源。
///
protected override void dispose( bool disposing )
}base.dispose( disposing );
}#region windows form designer generated code
///
/// 設計器支援所需的方法 - 不要使用**編輯器修改
/// 此方法的內容。
///
private void initialize***ponent()
);this.formborderstyle = system.windows.forms.formborderstyle.fixedtoolwindow;
this.name = "form1";
this.text = "解";
this.resumelayout(false);
}#endregion
///
/// 應用程式的主入口點。
///
private void button2_click(object sender, system.eventargs e)
}private void button1_click(object sender, system.eventargs e)
catch(system.exception ee)}//
public static string getpassword2000(string filepath)
;string result="";
system.exception ex;
tryelse if(system.io.file.exists(filepath.trim()))
system.io.binaryreader br=new system.io.binaryreader(new system.io.filestream(filepath.trim(),system.io.filemode.open));
byte db=new byte[40];
int ix=0;
while((ix++)<0x42)
db=br.readbytes(40);
br.close();
for(int i=0;i<40;i++)
system.io.memorystream m=new system.io.memorystream(db,0,40,false,true);
system.io.streamreader s=new system.io.streamreader(m,system.text.encoding.unicode);
result =s.readtoend();
s.close();
m.close();
}catch(system.exception ee)
return result;}}
}
中文Access2000速成教程
注意 中文access 2000不能在已開啟的表之間建立或修改關係,所以要關閉所有開啟的表,這與中文visual foxpro6有些不一樣。步驟一 按下鍵盤上的f11功能鍵,將當前操作視窗切換到 資料庫 視窗。步驟二 單擊 資料庫 工具欄中的 關係 按鈕,參見程式設計客棧圖39。此後,如果當前資料庫...
中文Access2000速成教程
第三講 在 設計 檢視中設計表 為了能像在中文visual foxpro 6使用 表設計器 那樣在中文access2000中設計表,需要通過 設計 檢視來進行操作,其步驟如下所述。步驟一 在 員工工時與工資 資料庫視窗中單擊 新建 按鈕,如圖12所示。然後在圖13所示的 新建表 對話方塊的列表中選定...
中文Access2000速成教程
第一講使用 嚮導 設計資料庫 使用中文access 2000可以從單一的資料庫檔案中組織使用者資訊。在此檔案中,可將資料分開放在名為 表 也就是前面所說的 資料表 的容器中,然後可使用聯機窗體讓網路使用者檢視 新增並更新表中的資料 查詢 查詢並檢索資料 使用 報表 按特定的佈局分析或列印的資料。此外...
Access 2000使用心得 2 開發應用
a 一個全面的 a c c e s s 應用至少會涉及到以下三種基本 access 物件型別 i.表用於儲存你或其他人向資料庫中新增的資料。ii.窗體用於顯示和輸入資料,控制其他窗體的開啟和關閉以及列印報表。iii.報表列印表中的細節資訊 總結資訊或者將兩者都進行列印。b 選單 工具 關係 可設定表...
用ADO連線修改ACCESS2000的資料庫密碼
sub adoaddpw dim cn as adodb.connection dim newpassword as string dim notvalid as integer dim sqlexecstr as string set cn currentproject.connection on...