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,D,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,X,Y,Z"
                constant = strtemp.Split(",")
            Case stringtype.str_lower
                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"
                constant = strtemp.Split(",")
            Case stringtype.str_num
                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,D,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,X,Y,Z,0,1,2,3,4,5,6,7,8,9"
                constant = strtemp.Split(",")
            Case stringtype.str_upper
                strtemp = "A,B,C,E,F,D,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z"
                constant = strtemp.Split(",")
        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)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值