一般進入系統都要登錄(如進入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
---- 至此一個簡單的系統登錄過程就實現了。