给定一个字符集以及密码长度,遍历所有密码样本,并形成密码字典,因为采用的是递归函数,速度非常快。
/// <summary>
/// 采用递归的方式创建密码字典
/// </summary>
/// <param name="list">字典</param>
/// <param name="first">前缀</param>
/// <param name="second">字符集</param>
/// <param name="size">密码长度</param>
/// <param name="repeat">单个字符的允许重复次数</param>
private static void Gen(List<string> list, string first, string second, int size, int repeat)
{
if (_isOver) return;
//长度为0则递归结束
if (size <= 0) return;
for (int i = 0; i < second.Length; i++)
{
//密码长度已经达到
if (size == 1)
{
//密码是否合格的标志
bool flag = false;
//当前密码
string str = first &#