【发布时间】:2011-11-16 02:05:10
【问题描述】:
我想创建一个随机字符串(大约 20 个字符长度)。 .net 中是否有任何内置类能够创建随机字符串?
【问题讨论】:
标签: .net vb.net string .net-4.0 random
我想创建一个随机字符串(大约 20 个字符长度)。 .net 中是否有任何内置类能够创建随机字符串?
【问题讨论】:
标签: .net vb.net string .net-4.0 random
您可以创建一个 Guid,然后将其转换为字符串。
Guid.NewGuid().ToString()
这将为您提供一个长度为 36 的随机字符串,但您可以将其缩减为 20。
【讨论】:
GetRandomFileName 方法返回一个强密码, 可用作文件夹名或文件名的随机字符串。 与 GetTempFileName 不同,GetRandomFileName 不创建文件。什么时候 文件系统的安全性是最重要的,这种方法应该是 使用而不是 GetTempFileName。
【讨论】:
使用Guid.NewGuid().ToString().Replace('-', default(Char)).Substring(0, 20)
【讨论】:
ToString() 允许使用 GUID.ToString() MSDN Documentation 中描述的格式说明符。其中之一是ToString("N"),它删除了破折号。无需致电Replace()。
怎么样:
string myString = Guid.NewGuid().ToString().Substring(0, 20);
【讨论】:
你应该试试TestApi,更具体地说是Text String Generation API。
【讨论】:
Path.GetRandomFileName() 会为您创建一个随机的文件名——尽管它只有 11 个字符长。
【讨论】:
在 .NET 中生成随机字符串
http://www.keyvan.ms/generating-random-strings-in-net
文章涵盖了生成随机字符串的 GUID、随机数和 RNGCryptoServiceProvider 方法
【讨论】:
这是我编写的一个函数,它使用 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
【讨论】: