軟件的安全性是個永恆的話題, 一直困擾著人們,程序員們常常因此熬夜。Novell公司的網絡操作系統NetWare 以其完善可靠的安全管理機制著稱,為實現用戶登錄的安全性和防止非法入侵者闖入,系統提供了幾種有效的限制措施和檢測功能。本文討論如何 建立完善的軟件注冊安全機制,有效地管理用戶登錄,為應用軟件提供可靠的保護,並在Delphi3.0下實現。
Delphi作為一個優秀的編程工 具,功能極其強大,令開發周期大大縮短,生成的代碼運行速度快,使得Windows 軟件設計成為一種樂趣。基本思路是:建立Paradox格式的用戶帳戶表Users.DB,並加密保護,由管理員維護。預先在此表中登記並有注冊權限的用戶,可持本人有效口令登錄進入系統。
實現步驟如下:
1.在應用軟件主目錄(假設為C:Register) 下創建兩個子目錄,分別命名為Login和Data。
2.從Delphi的Tools菜單中啟動Database Desktop,並選擇Tools/AliasManager…創建一個新別名。方法是:在Alias Manager對話框中點New,給出新別名UserInfo,並指向C:RegisterData 目錄,按KeepNew、OK等按鈕保存新別名。
3.利用DatabaseDesktop創建Paradox 5.0forWindows數據表Users.DB,結構見表1。事實上,對於商業軟件還需要更多的域。
表1表Users.DB的結構
域名類型大小關鍵字說明
NameA16*用戶名
PassWordA16*注冊口令
FullnameA32用戶全名
GroupI用戶組號
EnabledL注冊允許
4.設定Name,Group和Enabled 為非空域(RequiredFIEld),Group的最小值為0,最大值為3,默認值為3,Enabled的默認值為True。用戶組0為系統管理員,可進行幾乎任何操作;用戶組1為 軟件操作人員,可進行除用戶帳戶管理以外的操作,包括建立和刪除數據;用戶組2為普通用戶,可使用系統資源,無修改權限,而用戶組3僅可浏覽系 統有限信息。
5.用口令UserPassWord 保護Users.DB表,存於Data目錄下。利用DatabaseDesktop向表中輸入若干樣本用戶(見表2),然後關閉DatabaseDesktop。
表2表Users.DB的樣本用戶
Name Pa ord Fullname Group Enabled
Supervisor AAAAAA Super User 0 True
Director BBBBBB Director User 1 True
Guest 3 True
User1 CCCCCC General User1 1 False
User1 DDDDDD General User1 2 True
User2 EEEEEE General User2 3 True
表2顯示,允許同一用戶以不同身 份(用戶組)登錄進入系統,享有不同的權限。如用戶User1,以不同密碼登 記,分屬用戶組1和2。
6.返回DelphiIDE,新建項目Register.dpr 並存入C:Register目錄,主窗體單元命名為Main.pas。用戶注冊成功後,方能啟動主窗體進入系統。本系統僅顯示用戶信息及登錄的日期和時間以 表示注冊成功(見圖5),並不做其它任何事情,這裡便是讀者應用系統的接口。為此,在主窗體上放入一個TGroupBox組件,TLabel和TEdit組件各五個。 將所有TEdit的Text屬性清空,ReadOnly屬性值設為True,窗體和組件其余屬性按表3設置。
7.創建主窗體的OnActivate事 件處理程序,登錄成功並激活主窗體時執行,顯示用戶信息、登錄日期和時 間。過程如下:
procedureTMainForm.For
[1] [2] [3] [4] 下一頁