【问题标题】:Is there any class in .Net 4.0 that be able to create random string?.Net 4.0 中是否有任何类能够创建随机字符串?
【发布时间】:2011-11-16 02:05:10
【问题描述】:

我想创建一个随机字符串(大约 20 个字符长度)。 .net 中是否有任何内置类能够创建随机字符串?

【问题讨论】:

    标签: .net vb.net string .net-4.0 random


    【解决方案1】:

    您可以创建一个 Guid,然后将其转换为字符串。

    Guid.NewGuid().ToString()
    

    这将为您提供一个长度为 36 的随机字符串,但您可以将其缩减为 20。

    【讨论】:

    【解决方案2】:

    Path.GetRandomFileName Method

    GetRandomFileName 方法返回一个强密码, 可用作文件夹名或文件名的随机字符串。 与 GetTempFileName 不同,GetRandomFileName 不创建文件。什么时候 文件系统的安全性是最重要的,这种方法应该是 使用而不是 GetTempFileName。

    【讨论】:

    • 他想要 20 个字符,而这只有 11 个,无法更改字符数。他当然可以运行两次,去掉两个点,总共 20 个字符;)
    • 查看我的答案,了解循环调用 GetRandomFileName 以获得任意长度的随机字符串的函数。它非常高效,并不是说你需要 100 个一百万个字符的随机字符串,但它可以在我的 Core2 Duo 上在 47 秒内生成它们。
    【解决方案3】:

    使用Guid.NewGuid().ToString().Replace('-', default(Char)).Substring(0, 20)

    【讨论】:

    • GUID 上的 ToString() 允许使用 GUID.ToString() MSDN Documentation 中描述的格式说明符。其中之一是ToString("N"),它删除了破折号。无需致电Replace()
    【解决方案4】:

    怎么样:

    string myString = Guid.NewGuid().ToString().Substring(0, 20);
    

    【讨论】:

      【解决方案5】:

      你应该试试TestApi,更具体地说是Text String Generation API

      【讨论】:

        【解决方案6】:

        Path.GetRandomFileName() 会为您创建一个随机的文件名——尽管它只有 11 个字符长。

        【讨论】:

          【解决方案7】:

          在 .NET 中生成随机字符串

          http://www.keyvan.ms/generating-random-strings-in-net

          文章涵盖了生成随机字符串的 GUID、随机数和 RNGCryptoServiceProvider 方法

          【讨论】:

            【解决方案8】:

            这是我编写的一个函数,它使用 GetRandomFileName() 来获取任意长度的随机字符串。

            ''' <summary>
            ''' Obtain a random string of any length.
            ''' </summary>
            ''' <param name="length">Desired length of string.</param>
            ''' <returns></returns>
            ''' <remarks></remarks>
            Public Shared Function GetRandomString(ByVal length As Integer) As String        
                Dim sb As New StringBuilder(length)
                While (sb.Length < length)
                    ' GetRandomFileName returns a "cryptographically strong" random filename ex: "bfdbn2af.sxq"
                    sb.Append(IO.Path.GetRandomFileName().Replace(".", ""))
                End While
                ' strip the excess characters
                sb.Remove(length - 1, sb.Length - length)
                Return sb.ToString()
            End Function
            

            【讨论】:

              猜你喜欢
              • 2022-10-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-07-10
              • 1970-01-01
              • 2017-12-09
              • 1970-01-01
              相关资源
              最近更新 更多