目录
简介
调用方式:
详细说明
1.外层方法封装
2.定义字符组合
3.按长度生成
简介
随机字符串,包含数字,字母,特殊符号等,随机拼凑,长度可输入
为了生成效率,长度大于1024的,则用重复字符进行拼凑,以1024为重复长度
可以直接Nuget 搜Rotion
LS.Helper 是基于.net framework
LS.Standard.Helper 是基于 Standard 2.0
调用方式:
int LogLength=1024;
var content = SimpleCharBuilder.Build(LogLength, true);
详细说明
下面说下生成的方式:
1.外层方法封装
/// <summary>
/// 简单随机字符生成器
/// </summary>
public class SimpleCharBuilder
{
/// <summary>
/// 生成随机字符
/// </summary>
/// <param name="length">生成的长度</param>
/// <param name="includeSpecial">是否包含特殊字符,默认不包含</param>
/// <returns></returns>
public static string Build(int length, bool includeSpecial = false)
{
return new SimpleChar().Build(length, includeSpecial);
}
}
2.定义字符组合
定义 数字+字母组合的数组
private string[] source = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "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" };
定义特殊字符
private string[] special_char = new string[] { "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "_", "+", "=", "{", "}", "[", "]", ";", ":", ",", ".", "/", "<", ">", "?", "|", "\\", "`", "~" };
定义随机数对象
private static Random random = new Random();
3.按长度生成
/// <summary>
/// 生成随机字符
/// </summary>
/// <param name="length">生成的长度</param>
/// <param name="includeSpecial">是否包含特殊字符,默认不包含</param>
/// <returns></returns>
public string Build(int length, bool includeSpecial = false)
{
string result = "";
if (length > 0)
{
//参与生成的最终字符列表
List<string> dataSource = new List<string>();
dataSource.AddRange(source);
if (includeSpecial)
{
//如果设定包含特殊字符,则将特殊字符数组也添加进来
dataSource.AddRange(special_char);
}
int min = 0;
int max = dataSource.Count - 1;
if (length > 1024)
{
//长度大于1024
int cycle = length / 1024;
for (int i = 0; i < cycle; i++)
{
//直接重复添加1024个相同的字符
var g = dataSource[random.Next(min, max)];
result += g.PadRight(1024, g[0]);
}
}
else
{
//长度小于1024
for (int i = 0; i < length; i++)
{
var g = dataSource[random.Next(min, max)];
result += g;
}
}
}
return result;
}