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

所属分类: 网络编程 / ASP.NET 阅读数: 1718
收藏 0 赞 0 分享

本文一共介绍了5种生成随机数方式,具体如下:

第一种:转载的方法

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
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

第三种:原来是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)

原文链接:http://blog.csdn.net/lcp58006478/article/details/8958460

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

asp.net 页面间传值与跳转的区别

通过Server.Transfer("b.aspx") 与Response.Redirect("b.aspx")的区别
收藏 0 赞 0 分享

ASP.NET Gridview与checkbox全选、全不选实现代码

ASP.NET Gridview checkbox全选与全不选实现代码,其实原理就是利用js来实现的,但需要简单的设置下回传。
收藏 0 赞 0 分享

ASP.NET DropDownList控件的使用方法

ASP.NET DropDownList控件的使用方法,学习asp.net的朋友没用过这个控件的朋友可以参考下。
收藏 0 赞 0 分享

一些.NET对多线程异常处理技巧分享

多线程应用,在实际的项目或产品开发中,原则上来说,应该尽量避免,但是在强调用户体验的要求下或开发平台的限制下(如 Silverlight Socket 通讯),我们不得不用多线程。
收藏 0 赞 0 分享

ASP.NET MVC运行出现Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解决方法

同一相站点,有些页面的客户端验证能工作,而有些死活不行。打开页面就出现Uncaught TypeError: Cannot set property __MVC_FormValidation of null错误
收藏 0 赞 0 分享

asp.net 通用分页显示辅助类(改进版)

在使用ASP.NET编程时,如果不用控件的默认分页功能,想自己搞一个,可以看看本文的asp.net通用分页显示辅助类哦。
收藏 0 赞 0 分享

微软 Visual Studio 2010官方下载地址给大家

昨天VS2010在网上报道都已经发布了,现在今天在网上找到Visual Studio 2010官方下载地址,提供给大家下载。
收藏 0 赞 0 分享

Javascript 直接调用服务器C#代码 ASP.NET Ajax实例

近来总有一些朋友会问到一些入门的问题,把这些问题整理一下,写出来。在以前的文章里,曾经利用纯JS编写过Ajax引擎,在真正开发的时候,大家都不喜欢以这种低效率的方式开发,利用MS Ajax的集成的引擎,可以简单不少工作。
收藏 0 赞 0 分享

ASP.NET 页面刷新的实现方法(包括html,js)

ASP.NET 页面刷新的实现方法,比较全了, 包括html与js下的实现方法。
收藏 0 赞 0 分享

asp.net 无刷新翻页就是这么简单

前两天看了一个自定义分页控件,和AspNetPager一样是实现IPostBackEventHandler接口,不过简洁许多,就想能不能实现ICallbackEventHandler接口做到无刷新分页呢?想到了就马上去做,终于,设想变成了现实!!
收藏 0 赞 0 分享
查看更多