说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

强大的C#随机字符串生成器

HTML文档下载 WORD文档下载 PDF文档下载
使用这个类,你可以生成随机字符串,如密码和标识,主要特点是你可以定制以满足您的需求。

 

作者:brol.sergii

 


下载源代码

 

 

介绍

使用这个类,你可以生成随机字符串,如密码和标识,主要特点是你可以定制以满足您的需求。

 

背景

你可以有以下设置:

 

1. 4种字符集(大写,小写,数字和特殊字符)

2. 设定自己的字符集

3. 每种类型的字符数量最少

4. 模式驱动的字符串生成器

5. 可以生成唯一字符串

6. 每个字符只使用一次

 

使用代码

要开始使用它,你需要创建一个类的实例,并调用"Generate",像这样:

 

Console.WriteLine("Fixed size");RandomStringGenerator RSG = new RandomStringGenerator();for (int i = 0; i < 5; i++)    Console.WriteLine(RSG.Generate(25));Console.WriteLine("Variable size");RSG = new RandomStringGenerator();for (int i = 0; i < 5; i++)    Console.WriteLine(RSG.Generate(15,25));Console.WriteLine("Using pattern");RSG = new RandomStringGenerator();for (int i = 0; i < 5; i++)    Console.WriteLine(RSG.Generate("LLln*ssssL"));Console.WriteLine("Using only letters and numbers");RSG = new RandomStringGenerator();// Or we can use the constructorRSG.UseSpecialCharacters = false;for (int i = 0; i < 5; i++)    Console.WriteLine(RSG.Generate(30));Console.WriteLine("Using only special characters and numbers");RSG = new RandomStringGenerator();// Or we can use the constructorRSG.UseUpperCaseCharacters = false;RSG.UseLowerCaseCharacters = false;for (int i = 0; i < 5; i++)    Console.WriteLine(RSG.Generate(30)); Console.WriteLine("Using your own alphabet");RSG = new RandomStringGenerator(false,true,true,false);// Or we can use the constructorRSG.LowerCaseCharacters = "абвгдежзиклмнопрстуфхчшщюяьъ".ToCharArray();for (int i = 0; i < 5; i++)    Console.WriteLine(RSG.Generate(30));Console.WriteLine("Using special limits");RSG = new RandomStringGenerator();RSG.MinLowerCaseCharacters = 2;RSG.MinSpecialCharacters = 20;for (int i = 0; i < 5; i++)    Console.WriteLine(RSG.Generate(35));Console.WriteLine("Using each character only once");RSG = new RandomStringGenerator();RSG.MinLowerCaseCharacters = 25;RSG.RepeatCharacters = false;for (int i = 0; i < 5; i++)    Console.WriteLine(RSG.Generate(25));Console.WriteLine("Using custom alphabet, pattern and unique chars");RSG = new RandomStringGenerator();RSG.LowerCaseCharacters = "абвгдежзиклмнопрстуфхчшщюяьъ".ToCharArray();RSG.RepeatCharacters = false;for (int i = 0; i < 5; i++)    Console.WriteLine(RSG.Generate("lllnlllnlllsssL"));

运行结果

 

Fixed sizedDDH6S%5we=h:9=Ohm2qZ_CPmv{]q.sIY@1|YVc/y<Pu=oY[gni%Ws!(X%YOQ8uc?50uf#r(OC[kTJQ|>m*N1CA_qP>-J=%elHp[GZaAuwdwBR<T/$9-5,pJNDn>rVariable sizeLfUf%kcb{4A#bHOlwHtX8kX>uBUIOcU6>>mTx$:wo)KCs=B;c{Rfz.}MLtDV4*zH6yjQuszcZNkrz_7mblAFP#_=b>el<>CelyS.Using patternJVh8I~.=>BJJa8d,%?]MBXv7?{]%]IGFz5S&!|(UPEu8m~(%(ZUsing only letters and numbersjbIBUPvKNc0sOsnRSVFbK43k7sVnGiV1UdOnJtR3GUPE9lcgG6W0xbo8ibMIy2ecnrzPJcQ74Qcewu7YHdHS5eauwmeBYufP01BMbSddsT7tJ9MevNSnVDE8tU3jcbB7yuHknMWDphazYSNO9QBvXmUsing only special characters and numbers$*&!.<>52]$(89}+}]$]]5<67_03~>~&;>#3!(4|2<1*>>$.#&?#)8+$?>0|@^@*@.</^},>-*!61^&]-~}?}={(5|!:{3;>{}9*3<;3:5{3,+?19}04?@./|586<([11|.~>8*8?8]|)<>%([)0|6Using your own alphabetообкбнълея4тжд8ик3л924р7псу5дя6н2рхьрр4ш65зс35бх8ло4015ед8ажрь4жаоупиет76хлхдпю2кщгд0о8сьггусю28жрж1щиьп7к8гблф7см48лб8дсд8гч5щхчиж4чдщьс1нь9ичгщзабулUsing special limits!I@%){.>f,S-_3k_^*s$~/$_)*>)({)%():$[?-iQ~:~C;{a]{?^X,^g^;G{<!R{>,W]_*?=~F>+*d}_]#9||C[*B[U^j[T%em&/r{_o.:=K5-;1]Hg_!}+&$/9h(k-};g:%Iq#.{>GVXP&o<;U(%:E<}L,ehi;//-:{/F2!&;!+^>@Using each character only oncelvpeiywofrhkajdqtxcsbunzmenfkasgqtlxzuciryjmpdbohvoyfjnxkqtamcvzipwlsedhurbatubmnkehwjvolzpgxfsdicqyswqkdatpgzcjhmiyvblxnufroUsing custom alphabet, pattern and unique charsъхг6тею1ушь]->Gюхч8ьта7щгш)>@Hащо8ефл0ъпз};!Kъут8ещш5иом^$|Kожх5ргн9тсш?~#M
一些其它用途:
1.固定大小的字符串生成
2.可变大小的字符串生成
3.使用模式的字符串生成(L - 大写字母,l - 小写字母,n - 数字,s - 特殊字符和,* - 任何字符(所有字符集)
4.只使用字母和数字的字符串生成
5.只使用特殊字符和数字的字符串生成 
6.使用自定义的字母生成
7.使用最小限制的字符串生成
8.每个字符只使用一次
9.使用多种设置

 

 

【专访间】新科兰德创始人左磊:我们的“卖点”是“数据弹药” 甲骨文公司宣布推出最新Java EE 7 10款最佳CSS/jQuery开源图片说明 创业者应避免对投资者说的五句话 直接拿来用!最火的iOS开源项目(二) 西部数据Pat Wilkison:云计算市场是创新热点 猎豹浏览器发布手机版:PM谈开发理念 成为伟大开发者的“九步曲” 使用GPU构建更便宜的Google神经网络 Facebook与Yahoo!的“火花”:系统间实时数据流管理工具 视金钱如粪土?Yahoo!又要买了,梅姐的算盘是这样打的 MySQL手册不再遵循GPL协议:MySQL走向闭源前兆? 扁平化设计会扼杀人们的创造力吗? 又一巨头涉足移动视频分享领域:传雅虎欲收购短视频应用Qwiki 史上最牛:主要靠三消游戏IPO King也许会是第一家 乐视超级电视预约启动 1小时预约近1.4万台 王坚:未来一年阿里云会有很大变化 梁胜:开源并不是做好软件的唯一方式 如何为IE 10编写特定的样式 MySQL手册许可证更改乃是Bug惹得祸 开源世界高峰论坛首批演讲议题公布 测试工程师的心灵鸡汤:谦虚、不沉默、有危机感、不断努力 高德地图API“沿图有你,晒出你的LBS应用”活动拉开帷幕! 谁能找出Windows 8.1的安全漏洞,就将获得微软10万美元奖金! 【直击美国云计算】Facebook分享数据中心新网络架构Fabric 【直击美国云计算】OCP发起产业界的Maker运动 红帽刘长春:开源是推动云计算和大数据发展的重要力量 【直击美国云计算】出货量达x86的20多倍 ARM或将成为数据中心主角 孙小群:将SAP HANA打造为开放的PaaS平台 GitHub推出重大改进:强调速度、内容和交互性 如何打造测试工程师精英团队? 请大家帮忙测试以下,请提意见和建议,有分送,谢谢 xwindow启动问题 如何有效地断开连接或者禁止上网??欢迎讨论 纪念特别的日子,为了我爱的jeff -- 大派分喽 ^_^ 想读一读msdn,不过感觉太复杂,各位看过的有什么好建议 帮我看看这个SQL 语句错在哪儿? DCOM配置, 請問ORACLE中觸發器名字的最長長度時多少?(謝了各位) 我做了一个可以脱离开发环境制作报表的程序,(不过用的还是Qreport组件)希望大家看看该程序有没有实用价值 我需要统计每一列的每一数据占总记录数的百分比,怎么办? PB 7.0 和msxml parser的问题(50分) 请教:中文显示问题? vs.net 在沈阳有好用的D版吗?我换了两次了,可还是不好用!! IBM TP600硬盘加密问题!!!在线等待 求教!!! 我爱吃 鲜美的西瓜、苹果等…… cell帮忙来看一下 关于事务处理的问题! pb中解析xml的问题? 使用DrawText在窗口上画出几行字(带DT_WORDBREAK风格),请问如何知道其中任一字符的坐标值 送分小问题:客户端与服务器 谁能给我几个经典一点的directx方面的2d游戏例子吗 我毕业设计要用java做一个软件,能够实现信息隐藏技术,谁有这方面的经验?谢谢。100分 无比痛苦的我~~~~!! CEdit & CRichEdit 怎么调用flash文件 【【【简单的问题,只是我不知道而已 也不知现在那个版本的VS。ENT中文正式版要好点??? 关于DCOM的应用系统分发的简单问题! IBM TP600硬盘加密问题!!!在线等待 关于Linux下配置邮件服务器 哪里有适合delphi6的控健(包括fastreport)可以下载? 设备无关位图的数据,为什么与显示在屏幕上的RGB不一样,高手不一定会! 什么防火墙比较好???? 能用到存储过程吗? 如何操作动态连接库! 征求兼职,简单的数据库项目,要求人在上海。 怪问题送分 第五把钥匙 两台属于不同域的都安装的活动目录的服务器,如何建立域间的信任关系 一个delphi combobox的问题! WebControl中包含的中文字显示不正常? 怎样读取注册表中的数据呢? 刚刚写好一个 NT/2000/XP 的 backdoor (反向连接,插入系统进程,通讯加密) 愚人节千万别上厕所(刚看到的,转) 散 分! 高手进行,绝对给分! 继续上一个问题提问,关于动态窗体 不能加载控件dbgrid32?????许可证末找到??? 美萍反黄专家技术大讨论! Linux与四系统并存启动
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘