场景

Peter在最近给钓鱼网站注入假账号密码时,想起了随机生成了密码

限制

至少包含一位数字、一位大写字母和一位小写字母

代码

string chars = "0123456789ABCDEFGHIJKLMNOPQSTUVWXYZabcdefghijklmnpqrstuvwxyz";
Random randrom = new Random(getNewSeed());

string str = "";
for (int j = 0; j < 50; j++)
{
str = "";
for (int i = 0; i < 8; i++)
{
str += chars[randrom.Next(chars.Length)];//randrom.Next(int i)返回一个小于所指定最大值的非负随机数
}
//不符合正则,重新生成
if (!Regex.IsMatch(str, @"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$"))
{
continue;
}
else {
break;
}
}

 

 

private static int getNewSeed()
{
byte[] rndBytes = new byte[4];
System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();
rng.GetBytes(rndBytes);
return BitConverter.ToInt32(rndBytes, 0);
}

缺点

使用该方法,但是生成的密码仍然不真实,该方法适用于注册账号是随机生成的强密码

本文链接:

转载前务必保留本文链接和作者(部分原创禁止转载!)

除特别声明外,均采用 CC BY-NC-SA 3.0 Unported许可协议!

Last modification:February 4th, 2020 at 01:18 pm
您的每次打赏,都是我更新的不竭动力!