-1

我正在寻找 c# 中的解决方案,以在给定的字符或单词列表上生成组合,以对 zip 文件执行字典攻击。因为我们丢失了那些 zip 的密码文件。优点是我们知道上面可能出现的单词。字典应该包含我选择的所有单词组合。并且所有字符/单词都是小写的。

示例:假设我们有一组字符:

Set A = {A,B,C}

A,B,C   =3

AA,AB,AC

BA,BB,BC

CA,CB,CC    =9


AAA,AAB,AAC,ABA,ABB,ABC,ACA,ACB,ACC

BAA,BAB,BAC,BBA,BBB,BBC,BCA,BCB,BCC

CAA,CAB,CAC,CBA,CBB,CBC,CCA,CCB,CCA    = 27


TOTAL POSIBLE COMBINATION 39

从单词列表中,单个单词/字符最多可以重复 4 次。如果有任何这样的算法/逻辑可用,请提出建议。

4

1 回答 1

2

这是使用递归的 C# 实现:

static char[] A={'a','b','c'};
static int N = 3;
static void foo(string s)
{
    if (s.Length == N)
    {
        Console.WriteLine(s);
        return;
    }
    for (int i = 0; i < A.Length; i++)
    {
        string t = s;
        t += A[i];
        foo(t);
    }
}

演示

如果您想稍后检索这些值,请在从 function 返回之前将字符串存储在全局数组中foo()

于 2015-08-15T17:46:26.670 回答