gpt4 book ai didi

c# - 生成不超过一定字长的每个字符组合

转载 作者:太空狗 更新时间:2023-10-29 22:13:02 25 4
gpt4 key购买 nike

我将在几周后为我的计算机和信息安全类(class)做一个安全演示,在这个演示中,我将展示不同攻击(字典攻击、彩虹攻击和暴力破解)的优缺点。我可以很好地进行字典和彩虹攻击,但我需要即时生成暴力破解攻击。我需要找到一种算法,让我循环遍历字母、符号和数字的每个组合,直到达到特定的字符长度。

例如,对于长度为 12 的字符,第一代和最后几代将是:

a
ab
abc
abcd
...
...
zzzzzzzzzzzx
zzzzzzzzzzzy
zzzzzzzzzzzz

但它也会使用数字和符号,所以我很难解释......但我想你明白了。仅使用 ASCII 表中的符号即可。

我可以想象一下使用 ASCII 函数来用计数器执行此操作,但我就是无法在脑海中计算出来。如果有人可以提供一些源代码(我可能会使用 C#)或什至一些伪代码,我可以从中编写一个函数,那就太好了。

提前致谢。 :)

最佳答案

一个递归函数可以让你遍历 ValidChars 的所有组合:

    int maxlength = 12;
string ValidChars;
private void Dive(string prefix, int level)
{
level += 1;
foreach (char c in ValidChars)
{
Console.WriteLine(prefix + c);
if (level < maxlength)
{
Dive(prefix + c, level);
}
}
}

将有效字符集分配给 ValidChars,将字符串的最大长度设置为 maxlength,然后调用 Dive("", 0); 然后就可以了。

关于c# - 生成不超过一定字长的每个字符组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com