軟體的安全性是個永恒的話題, 一直困擾著人們,程式員們常常因此熬夜。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:\Register\Data 目錄,按KeepNew、OK等按鈕儲存新別名。
3.利用DatabaseDesktop建立Paradox 5.0 for Windows資料表Users.DB,結構見表1。事實上,對於商業軟體還需要更多的域。
網域名稱類型大小關鍵字說明
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。