生成随机字符串(数字、字母、特殊符号组合)

多用于随机复杂密码。

如果“数字、字母、特殊符号” 都放在一个数组中,随机生成的不一定会同时具备三者的组合,所以,只能分开,再自定义规则组合在一起(算是半随机)

以下便是实例,调用的时候加上“密码长度(不少于6位)”的判断提示!

/// <summary>
/// 生成随机密码
/// </summary>
/// <param name="length">密码长度(不少于6位)</param>
/// <returns>返回数字、字母、特殊符号组合</returns>
public static string GenerateRandom(int length)
{
    // 数字
    char[] number = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
    // 字母
    char[] letter = {                                
                        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
                        'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
                        'u', 'v', 'w', 'x', 'y', 'z',
                        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
                        'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
                        'U', 'V', 'W', 'X', 'Y', 'Z'                              
                       };
    // 特殊符号
    char[] symbol = { '!', '@', '#', '$', '%', '&', '*', '.', '_' };
    string result = "";
    Random rnd = new Random(Guid.NewGuid().GetHashCode());
    if (length >= 6)
    {
        for (int i = 0; i < length; i++)
        {
            if (i == 2)
            {
                result += symbol[rnd.Next(symbol.Length)];
            }
            else
            {
                result += i % 2 == 0 ? number[rnd.Next(number.Length)] : letter[rnd.Next(letter.Length)];
            }
        }
    }
    return result;
}

 效果:

 

posted @ 2024-02-07 15:00  Luckyfish小文  阅读(91)  评论(0编辑  收藏  举报