---- 一般进入系统都要登录(如进入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
---- 至此一个简单的系统登录过程就实现了。