26 lines
766 B
C#
26 lines
766 B
C#
using System.Security.Cryptography;
|
|
using System.Text;
|
|
|
|
namespace Myhm.Util;
|
|
|
|
public class RandomStringGenerator
|
|
{
|
|
private static readonly char[] chars =
|
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*+?".ToCharArray();
|
|
|
|
public static string GenerateRandomString(int length)
|
|
{
|
|
var stringBuilder = new StringBuilder();
|
|
using (var rng = RandomNumberGenerator.Create())
|
|
{
|
|
byte[] buffer = new byte[1];
|
|
for (int i = 0; i < length; i++)
|
|
{
|
|
rng.GetBytes(buffer);
|
|
var randomIndex = buffer[0] % chars.Length;
|
|
stringBuilder.Append(chars[randomIndex]);
|
|
}
|
|
}
|
|
return stringBuilder.ToString();
|
|
}
|
|
}
|