几周后我将为我的计算机和信息安全课程做一个安全演示,在这个演示中我将展示不同攻击(字典、彩虹和暴力)的优缺点。我可以很好地进行字典和彩虹攻击,但我需要即时生成暴力攻击。我需要找到一种算法,可以让我循环遍历字母、符号和数字的每个组合,直到达到一定的字符长度。
举个例子,对于 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);
然后你就走吧。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)