一般進入系統都要登錄(如進入Windows NT),進行身份檢驗,以保證軟件的合法使用和維護,便於明確責任。我們自己開發的系統也必須保證系統使用者是合法用戶,登錄時要進行身份驗證。
---- 系統登錄時一般有三次機會,超過則視為非法用戶,不讓使用系統。本程序是用VB5.0實現的,後台數據庫是Access 97。
其主要源程序代碼如下: Private Sub cmd_yes_Click() 開始檢驗 Picture1.Picture = LoadPicture("trffc10b.ico") times = times + 1 解密 txt_mm.Text = invert(txt_mm.Text) 查找用戶名 ordc_dlmmk.Recordset.FindFirst "username=" & txt_bh.Text & "" If ordc_dlmmk.Recordset.NoMatch Then If times < 3 Then Picture1.Picture = LoadPicture("trffc10c.ico") MsgBox "無此用戶,請重新輸入!", vbExclamation + vbOKOnly,"提示信息" Picture1.Picture = LoadPicture("trffc09.ico") txt_bh.SetFocus Call txt_bh_GotFocus Exit Sub Else MsgBox "對不起,您無權使用本系統 ," + vbCrLf + vbCrLf + " 請與系統管理員聯系! ", vbCritical + vbOKOnly, "提示信息" End End If End If If times < 3 Then If Not (UCase(txt_mm.Text) = UCase(Text2.Text)) Then txt_mm.Text = invert(txt_mm.Text) Picture1.Picture = LoadPicture("trffc10c.ico") MsgBox "用戶密碼錯誤,請重新輸入!", vbExclamation, "提示信息" Picture1.Picture = LoadPicture("trffc09.ico") txt_mm.SetFocus Call txt_mm_GotFocus Exit Sub Else Picture1.Picture = LoadPicture("trffc10a.ico") MsgBox "歡迎您使用本系統!", vbInformation, "提示信息" Unload Me frm_welcome.Show End If ElseIf times = 3 Then If UCase(txt_mm.Text) = UCase(Text2.Text) Then Picture1.Picture = LoadPicture("trffc10a.ico") MsgBox "歡迎您使用本系統!", vbInformation, "提示信息" Unload Me frm_welcome.Show Exit Sub End If MsgBox "對不起,您無權使用本系統, " + vbCrLf + vbCrLf + " 請與系統管理員聯系! ", vbCritical + vbOKOnly, "提示信息" End End If End Sub
---- 由於一般系統用戶有多個,所以必須設置多用戶。通常用戶名和對應密碼以數據庫的形式保存。但數據庫極易暴露,可直接通過打開數據庫而獲 沒名和密碼,安全性不好,所以應進行加密工?-保存在數據庫中的密碼與登錄時輸入的密碼不一樣,保存時進行加密,登錄時進行解密。這樣,即使看到了數據庫內容,如果不知道解密過程也無法進入系統。
---- 一個比較簡單的加密過程如下:
Public Function invert(passw As String) Dim i As Integer Dim Temp As String Temp = "" For i = Len(passw) To 1 Step -1 Temp = Temp + Mid(passw, i, 1) Next i invert = Temp End Function
---- 至此一個簡單的系統登錄過程就實現了。