VB.NET生成随机串或随机数字的方法

第一种:转载的方法

Public Enum stringtype
allstring = 1 '大小写字母
allnumic = 2 '数字
str_num = 3 '大小写字母+数字
str_upper = 4 '大写字母
str_lower = 5 '大写字母
End Enum
Function Generaterandom(ByVal Length As Integer,ByVal s As stringtype) As String
Dim strtemp As String = ""
Dim constant() As String = nothing
Select Case s
Case stringtype.allnumic
strtemp = "0,1,2,3,4,5,6,7,8,9"
constant = strtemp.Split(",")
Case stringtype.allstring
strtemp = "a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z"
constant = strtemp.Split(",")
Case stringtype.str_lower
strtemp = "a,z"
constant = strtemp.Split(",")
Case stringtype.str_num
strtemp = "a,Z,")
Case stringtype.str_upper
strtemp = "A,")
End Select
Dim NewRandom As System.Text.StringBuilder = New System.Text.StringBuilder(Length)
Dim rd As Random = New Random()
Dim i As Integer
For i = 0 To Length - 1 Step i + 1
NewRandom.Append(constant(rd.Next(constant.Length - 1)))
Next
Return NewRandom.ToString()
End Function

第二种:网上查找

Public Function GetoAuthNonce() As String ' 得到随机
Dim result As String = System.Guid.NewGuid().ToString()
result = result.Replace("-","")
Return result.Substring(0,10)
End Function

第三种:原来是C#转换

Public Function RandCode(ByVal n As Integer) As String
Dim arrChar As Char() = New Char() {"a"c,"b"c,"d"c,"c"c,"e"c,"f"c,_
"g"c,"h"c,"i"c,"j"c,"k"c,"l"c,_
"m"c,"n"c,"p"c,"r"c,"q"c,"s"c,_
"t"c,"u"c,"v"c,"w"c,"z"c,"y"c,_
"x"c,"0"c,"1"c,"2"c,"3"c,"4"c,_
"5"c,"6"c,"7"c,"8"c,"9"c,"A"c,_
"B"c,"C"c,"D"c,"E"c,"F"c,"G"c,_
"H"c,"I"c,"J"c,"K"c,"L"c,"M"c,_
"N"c,"Q"c,"P"c,"R"c,"T"c,"S"c,_
"V"c,"U"c,"W"c,"X"c,"Y"c,"Z"c}
Dim num As New StringBuilder()
Dim rnd As New Random(DateTime.Now.Millisecond)
For i As Integer = 0 To n - 1
num.Append(arrChar(rnd.[Next](0,arrChar.Length)).ToString())
Next
Return num.ToString()
End Function

第四种:利用VB6转换

Function makeRand(ByVal maxLen As Integer) As String '生成签名时用随机
Dim strNewPass As String = vbNullString
Dim lower As Long
Dim whatsNext As Long
Dim upper As Long
Dim intCounter As Long
Randomize()
For intCounter = 1 To maxLen
whatsNext = Int((1 - 0 + 1) * Rnd() + 0)
If whatsNext = 0 Then
upper = 122
lower = 100
Else
upper = 57
lower = 48
End If
strNewPass = strNewPass & Chr(Int((upper - lower + 1) * Rnd() + lower))
Next
makeRand = strNewPass
End Function

第五种:直接用VB.NET函数

Dim rand As Random = New System.Random(10)‘这里10就代表是10为 Debug.Print(rand.Next().ToString)

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...