zoukankan      html  css  js  c++  java
  • C#生成满足特定要求的密码

    代码1

       Random m_rnd = new Random();
            public char getRandomChar()
            {
                int ret = m_rnd.Next(122);
                while (ret < 48 || (ret > 57 && ret < 65) || (ret > 90 && ret < 97))
                {
                    ret = m_rnd.Next(122);
                }
                return (char)ret;
            }
            public string getRandomString(int length)
            {
                StringBuilder sb = new StringBuilder(length);
                for (int i = 0; i < length; i++)
                {
                    sb.Append(getRandomChar());
                }
                return sb.ToString();
            }     

    代码2 - 支持自定义字符的混合

    //随机字符串生成器的主要功能如下: 
            //1、支持自定义字符串长度
            //2、支持自定义是否包含数字
            //3、支持自定义是否包含小写字母
            //4、支持自定义是否包含大写字母
            //5、支持自定义是否包含特殊符号
            //6、支持自定义字符集
    
            ///<summary>
            ///生成随机字符串
            ///</summary>
            ///<param name="length">目标字符串的长度</param>
            ///<param name="useNum">是否包含数字,1=包含,默认为包含</param>
            ///<param name="useLow">是否包含小写字母,1=包含,默认为包含</param>
            ///<param name="useUpp">是否包含大写字母,1=包含,默认为包含</param>
            ///<param name="useSpe">是否包含特殊字符,1=包含,默认为不包含</param>
            ///<param name="custom">要包含的自定义字符,直接输入要包含的字符列表</param>
            ///<returns>指定长度的随机字符串</returns>
            public string GetRnd(int length, bool useNum, bool useLow, bool useUpp, bool useSpe, string custom)
            {
                byte[] b = new byte[4];
                new System.Security.Cryptography.RNGCryptoServiceProvider().GetBytes(b);
                Random r = new Random(BitConverter.ToInt32(b, 0));
                string s = null, str = custom;
                if (useNum == true) { str += "0123456789"; }
                if (useLow == true) { str += "abcdefghijklmnopqrstuvwxyz"; }
                if (useUpp == true) { str += "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; }
                if (useSpe == true) { str += "!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"; }
                for (int i = 0; i < length; i++)
                {
                    s += str.Substring(r.Next(0, str.Length - 1), 1);
                }
                return s;
            }

    本文转载自  http://www.cnblogs.com/phcis/archive/2011/01/12/1933632.html

  • 相关阅读:
    NPM 使用介绍
    tight
    c# 选择排序
    AssetBundle Manager and Example Scenes
    非常棒的轨迹插件Better Trails v1.4.6
    【模型】Toon Dragon
    unity实现3D物体上的事件监听处理
    Alley Bird 跳跳鸟源码
    Unity性能优化 – 脚本篇
    欧拉角与万向节死锁
  • 原文地址:https://www.cnblogs.com/wphl-27/p/7144831.html
Copyright © 2011-2022 走看看