给定特定数字格式,打印所有可能的组合

时间:2014-08-14 00:35:01

标签: python algorithm security cryptography brute-force

我有兴趣尝试“暴力破解”字符串的所有可能组合,格式为“## - ######”,其中前两个字符是数字0-9,然后是连字符和六个以上的数字0-9。

我想要做的就是将这些打印到文本文件或控制台。 这对我来说是一次学习练习,而不是学校或工作。

我不是在寻找代码示例,而是参考有关猜测模式的参考资料。

我更喜欢python,但可以使用大多数语言。

谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个:

with open('file.out', 'w') as output:
    for n in xrange(100000000):
        s = "{0:08d}".format(n)
        output.write(s[:2] + '-' + s[2:] + '\n')

...但请注意,这是一个很多的组合,你可能会耗尽内存,如果不是,那么结果文件将很大并且该计划将花费大量时间来完成。蛮力在这里不是一个好主意。

答案 1 :(得分:1)

就像一个FYI,那将是10 ^ 8(100,000,000)组合。你很快就会耗尽内存。

无论如何,除了记忆之外......

from itertools import product

["%02d-%06d" % (i[0], i[1]) for i in product(range(100), range(1000000)]