代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
生成随机字符串
作者:
dezai
/ 发布于
2014/5/16
/
484
///<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; } ///<summary> ///得到随机字符. ///</summary> ///<param name="intLength">Length of the int.</param> ///<param name="booNumber">if set to <c>true</c> [boo number].</param> ///<param name="booSign">if set to <c>true</c> [boo sign].</param> ///<param name="booSmallword">if set to <c>true</c> [boo smallword].</param> ///<param name="booBigword">if set to <c>true</c> [boo bigword].</param> ///<returns></returns> public string getRandomizer(int intLength, bool booNumber, bool booSign, bool booSmallword, bool booBigword) { //定义 Random ranA = new Random(); int intResultRound = 0; int intA = 0; string strB = ""; while (intResultRound < intLength) { //生成随机数A,表示生成类型 //1=数字,2=符号,3=小写字母,4=大写字母 intA = ranA.Next(1, 5); //如果随机数A=1,则运行生成数字 //生成随机数A,范围在0-10 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 1 && booNumber) { intA = ranA.Next(0, 10); strB = intA.ToString() + strB; intResultRound = intResultRound + 1; continue; } //如果随机数A=2,则运行生成符号 //生成随机数A,表示生成值域 //1:33-47值域,2:58-64值域,3:91-96值域,4:123-126值域 if (intA == 2 && booSign == true) { intA = ranA.Next(1, 5); //如果A=1 //生成随机数A,33-47的Ascii码 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 1) { intA = ranA.Next(33, 48); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } //如果A=2 //生成随机数A,58-64的Ascii码 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 2) { intA = ranA.Next(58, 65); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } //如果A=3 //生成随机数A,91-96的Ascii码 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 3) { intA = ranA.Next(91, 97); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } //如果A=4 //生成随机数A,123-126的Ascii码 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 4) { intA = ranA.Next(123, 127); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } } //如果随机数A=3,则运行生成小写字母 //生成随机数A,范围在97-122 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 3 && booSmallword == true) { intA = ranA.Next(97, 123); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } //如果随机数A=4,则运行生成大写字母 //生成随机数A,范围在65-90 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 4 && booBigword == true) { intA = ranA.Next(65, 89); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } } return strB; }
试试其它关键字
随机字符串
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
dezai
贡献的其它代码
(
1065
)
.
双色球
.
列出所有物理网络适配器
.
快乐数的 Python 实现
.
计算当月还剩天数
.
猜属相
.
二十四小时时钟
.
每日一语
.
很酷的日历
.
超长日历表单
.
最简单的时钟
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3