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 += "!\"#$%&‘()*+,-./:;<=>[email protected][\\]^_`{|}~"; }
            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

时间: 2024-08-02 07:50:31

C#生成满足特定要求的密码的相关文章

一次有趣的Linux下.Net Core与C语言的合作开发体验:生成Linux标准的用户密码串

最近在项目进程中遇上了Linux用户验证的问题,想着怎么样通过Linux本地用户进行安全校验,于是去查了些资料. Linux的密码存储 查阅资料后发现早期的Linux存储在/etc/password文件中,因为/etc/password权限控制较弱,现在已经不使用了,所以我们这里就不讨论这个文件了,较新的Linux发行版,密码都是存储在/etc/shadow文件中,因为/etc/shadow是管理员权限访问,安全性高出许多,我们可以使用命令来查看文件: $ sudo cat /etc/shado

MySQL数据库自动生成并修改随机root密码的脚本

在MySQL数据库部署的过程中,在安装了MySQL软件,并配置了my.cnf配置文件后,需要创建MySQL实例. MySQL 5.5实例创建完成了,默认会有登陆用户名和密码为空的用户,一般需要修改root用户密码,并删除无效用户,然后才能提供给应用使用. 这个过程可以通过shell脚本自动完成实例创建,启动,自动生成密码,修改root用户密码,删除无效用户. shell脚本有多种编写方法,我编写的shell脚本如下: #!/bin/bash # this scripts used to init

ADMT3.2域迁移之Server2003至Server2012系列(八)生成密钥文件及安装密码迁移工具

在win2008服务器以管理员权限运行CMD并输入 [admt key /option:create /sourcedomain:ma.com /keyfile:C:\admt3.2 /keypassword:123] 将密钥文件拷贝到源服务器上,并在目标服务器上安装pwdmigX86程序 接受许可 添加[加密文件] 输入密钥文件 密码 准备安装 输入运行账号密码 以授予administrator权利 安装完成 安装完成后提示重启操作系统 在源服务器上(win2003)[启动密钥导出服务] 至此

定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下: (1)可以生成具有特定坐标的点对象。 (2)提供可以设置三个坐标的方法。 (3)提供可以计算该“点”距原点距离平方的方法。 (4)编写主类程序验证。

package b; public interface ZuoBiao { double zuobiao(); } package b; public class Point implements ZuoBiao { double x; double y; double z; public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y;

C#调用Oracle ebs生成Webservice,加用户名密码验证

public void GetDept() { CUX_BASEINFO_OA_PKG_Service client = new CUX_BASEINFO_OA_PKG_Service(); var inputParameters = new InputParameters(); inputParameters.P_ACTION_ID = "1"; var userToken = new UsernameToken("ERP_API", "qazwsx12

在26个大小写字母(52个),以及9个数字组成的字符列表中, 随机生成10个8位密码.

print(ord('A'))print(ord('a'))print(ord('0'))import randomSecChar=[]for i in range(26): SecChar.append(chr(i+ord('A')));for i in range(26): SecChar.append(chr(i+ord('a')));for i in range(9): SecChar.append(chr(i+ord('0')));print(SecChar)for i in rang

Linux中定时清除指定目录中30分钟前生成的特定文件

1,在/root/deltts目录下,创建脚本 vi clearBigtrc03.sh,输入以下脚本.保存并退出 #!/bin/sh find /root/uploadFiles -mmin +30 -name *.mp3 -exec rm {} \; 2,给文件赋予执行权限 chmod 755 clearBigtrc03.sh 3,添加Linux中的定时任务 输入crontab -e打开定时任务编辑,在最后增加一行如下,然后保存退出 表示每3分钟执行一次脚本 */3 * * * * /root

Linux系统下使用pwgen生成密码的使用教程

pwgen生成的密码易于记忆且相当安全.从技术上来说,容易记忆的密码不会比随机生成的密码更加安全.但是,在大多数情况下,pwgen生成的密码已经足够安全,除了网银密码等需要高安全等级的情况外.使用易于记忆的密码的好处就是你不会把这些密码写下来或者存到电脑上的某个地方,这样做本来就是不安全的. 安装pwgen,在终端窗口输入(适用于Debian系列的Linux系统): sudo apt-get install pwgen 不带任何参数就运行pwgen,将会输出满屏幕的密码.你可以从中选择一个作为自

生成grub密码,防止陌生人进入单用户模式

非明文密码生成 grub-crypt # 生成sha加密方式的密码 grub-crypt --md5 # 生成md5加密方式的密码 配置 将生成的密码粘贴到/etc/grub.conf中,格式如下(password位置): # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot