vb产生随机数(数字+字母不分大小写)用于验证码(+干扰)
发布网友
发布时间:2022-05-12 07:06
我来回答
共2个回答
热心网友
时间:2024-02-19 07:40
呐。。。。换个思路........
a="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
Mid(a,Int(Rnd(Timer)*63),1)
就是要取的字母或数字.~~
--------------------------------------------
使输入的验证码不分大小写..提供两种方案
1.处理用来输入验证码的TextBox的事件KeyPress()..判断输入的内容..如果是小写就转化成大写.~
可以这样写:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii >= Asc("a") And KeyAscii <= Asc("z") Then
KeyAscii = KeyAscii + Asc("A") - Asc("a")
End If
End Sub
这样输入的就始终是大写字母了.~~
2:在判断难证码是否正确的函数里,在检测正确与否之前,将输入的字符串中的小写字母全部转化成大写.~例如这样写:
Private Function iCheck(ByVal msg As String) As Long
Dim i As Integer
For i = 1 To Len(msg)
If Asc(Mid(msg, i, 1)) >= Asc("a") And Asc(Mid(msg, i, 1)) <= Asc("z") Then
Mid(msg, i, 1) = Chr(Asc(Mid(msg, i, 1)) + Asc("A") - Asc("a"))
End If
Next i
MsgBox msg
'......
'加入检测是否相等的代码.~
End Function
第三个问题我也想知道啊...关于图形的不可逆算法以及图形相似度比较的算法......
热心网友
时间:2024-02-19 07:40
Function MakeStr(nLength As Integer) As String
'随机生成指定长度的字符串,包括英文字母(不区分大小写)和数字
Randomize
For i = 1 To nLength
r = Int(Rnd * 3)
Select Case r
Case 0 '数字
MakeStr = MakeStr & Int(Rnd * 10)
Case 1 '小写字母
MakeStr = MakeStr & Chr(Int(Rnd * 26) + 97)
Case 2 '大写字母
MakeStr = MakeStr & Chr(Int(Rnd * 26) + 65)
End Select
Next
End Function
Private Sub Command1_Click()
Print MakeStr(5)
End Sub