作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我将在几周后为我的计算机和信息安全类(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/
我正在尝试开发右边框/Angular 具有特定 Angular (30°) 的表格。我见过一些类似的解决方案,但它们都无法在一定程度上发挥作用。如果我想从 30° 改变到 20°,我不想花太多力气。
我是一名优秀的程序员,十分优秀!