vb 随机产生任意位数的密码

来源:百度知道 编辑:UC知道 时间:2024/06/27 18:52:07

msgbox NewPassword(400) '400是要生成密码的位数 调用 就是NewPassword(400)

Function NewPassword(intLen)
Dim tmpSTR
Dim i
Dim tmp
Randomize
For i = 1 To intLen
tmp = Int(Rnd * (122 - 49) + 49)
if (tmp>=58 and tmp<=64) or (tmp>=91 and tmp<=96) then
i=i-1
Else
tmpSTR = Chr(tmp) '符合要求,转换成字符
NewPassword = NewPassword & tmpSTR
End if
Next
NewPassword = NewPassword & len(NewPassword)
End Function
'楼上的代码很好 好象是生成的密码不包含数字1,“chr(49)=1”

刚看到一位高手写的,产生由大小写英文字母和数字组成的一串字符串的一个过程,intLen为字符串长度,正好和用。
刚看了看,确实不包括1,又改了下,这回把0也加上了,呵呵。

Function NewPassword(intLen As Integer) As String
Dim tmpSTR As String
Dim i As Integer
Dim tmp As Integer
Randomize
For i = 1 To intLen
go1:
tmp = Int(Rnd * (122 - 48 + 1) + 48)
Select Case tmp
Case 91 To 96
GoTo go1 '不符合要求 重新产生
Case 58 To 64
GoTo go1 '不符合要求 重新产生