public class RandomStringBuilder
{
/// <summary>
/// 生成單個隨機數字
/// </summary>
private int createNum()
{
Random random = new Random(Guid.NewGuid().GetHashCode());
int num = random.Next(10);
return num;
}
/// <summary>
/// 生成單個大寫隨機字母
/// </summary>
private string createBigAbc()
{
//A-Z的 ASCII值為65-90
Random random = new Random(Guid.NewGuid().GetHashCode());
int num = random.Next(65, 91);
string abc = Convert.ToChar(num).ToString();
return abc;
}
/// <summary>
/// 生成單個小寫隨機字母
/// </summary>
private string createSmallAbc()
{
//a-z的 ASCII值為97-122
Random random = new Random(Guid.NewGuid().GetHashCode());
int num = random.Next(97, 123);
string abc = Convert.ToChar(num).ToString();
return abc;
}
/// <summary>
/// 生成隨機字符串
/// </summary>
/// <param name="length">字符串的長度</param>
/// <returns></returns>
public string Create(int length)
{
// 創建一個StringBuilder對象存儲密碼
StringBuilder sb = new StringBuilder();
//使用for循環把單個字符填充進StringBuilder對象里面變成14位密碼字符串
for (int i = 0; i < length; i++)
{
Random random = new Random(Guid.NewGuid().GetHashCode());
//隨機選擇里面其中的一種字符生成
switch (random.Next(3))
{
case 0:
//調用生成生成隨機數字的方法
sb.Append(createNum());
break;
case 1:
//調用生成生成隨機小寫字母的方法
sb.Append(createSmallAbc());
break;
case 2:
//調用生成生成隨機大寫字母的方法
sb.Append(createBigAbc());
break;
}
}
return sb.ToString();
}
}