高分-求随机12位根据0-9 a-z A-Z 密码要求:12位,包含数字,英文字母大写,英文字母小写,特殊字符

wang_maosen 2016-01-27 11:01:05
后台随机生成一个12位的密码:
密码要求:12位,包含数字,英文字母大写,英文字母小写,特殊字符
以下代码是一个参考。
private static string numbers = "0123456789";

private static string lowerChars = "abcdefghijklmnopqrstuvwxyz";

private static string upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

private static string otherChars = "!@#$%-+?";

--------------------------------------------------------------------------

public class PasswordMgr
{
private static string numbers = "0123456789";

private static string lowerChars = "abcdefghijklmnopqrstuvwxyz";

private static string upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

private static string otherChars = "!@#$%-+?";

public static string CreateRandomPw(int length, bool containNum,
bool containLowerChars, bool containUpperChars, bool containOtherChars)
{
if (length < 6)
{
throw new ArgumentException("length必须大于6");
}

StringBuilder sb = new StringBuilder();

Random rand = new Random();

string charSet = string.Empty;

sb.Append(lowerChars[rand.Next(0, lowerChars.Length)]);

sb.Append(upperChars[rand.Next(0, upperChars.Length)]);

sb.Append(numbers[rand.Next(0, numbers.Length)]);

if (containNum)
{
charSet += numbers;
}
if (containLowerChars)
{
charSet += lowerChars;
}
if (containUpperChars)
{
charSet += upperChars;
}
if (containOtherChars)
{
charSet += otherChars;
}

for (int i = 3; i < length; i++)
{
int num = rand.Next(0, charSet.Length);

sb.Append(charSet[num]);
}

return sb.ToString();
}
}

...全文
1615 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxin5156 2016-01-27
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
你这个循环还要求必须要有所有的类型吗?那你可以随机生成后,再判断是否每样都有
正怒月神 版主 2016-01-27
  • 打赏
  • 举报
回复
不就是随机吗。。 先随机一个数字,选择哪一种字符串,大写,小写,还是数字, 然后在随机当前字符串中的字符。 循环12次。。。
Poopaye 2016-01-27
  • 打赏
  • 举报
回复
高分在哪里?
本拉灯 2016-01-27
  • 打赏
  • 举报
回复
你自己不都做出来了么,还要这做啥子

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧