How can I generate random alphanumeric strings?

后端 未结 30 3537
予麋鹿
予麋鹿 2020-11-22 03:17

How can I generate a random 8 character alphanumeric string in C#?

30条回答
  •  生来不讨喜
    2020-11-22 03:46

    Here is a variant of Eric J's solution, i.e. cryptographically sound, for WinRT (Windows Store App):

    public static string GenerateRandomString(int length)
    {
        var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
        var result = new StringBuilder(length);
        for (int i = 0; i < length; ++i)
        {
            result.Append(CryptographicBuffer.GenerateRandomNumber() % chars.Length);
        }
        return result.ToString();
    }
    

    If performance matters (especially when length is high):

    public static string GenerateRandomString(int length)
    {
        var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
        var result = new System.Text.StringBuilder(length);
        var bytes = CryptographicBuffer.GenerateRandom((uint)length * 4).ToArray();
        for (int i = 0; i < bytes.Length; i += 4)
        {
            result.Append(BitConverter.ToUInt32(bytes, i) % chars.Length);
        }
        return result.ToString();
    }
    

提交回复
热议问题