in reply to Re: Attempting to create a brute-force wordlist
in thread Attempting to create a brute-force wordlist

I'm sorry, but I think you misunderstood my question a bit. Although it might have a simple solution, it isn't as simple as printing a list of numbers with zeros in front of them. (That I could do myself). No, the purpose of the file is to act as a dictionary for a password cracking program (don't worry, I'm not going to do anything illegal ;-) ).

Therefore this should work with letters as well as numbers. The reason I started with numbers is because there are less combinations with 10 different numbers, than with 26 different letters. This was supposed to be a first try to see if I could get it to work. The goal is to print all possible combinations of the numbers 0-9 (for now) until they reach the point of 10 characters (again, for now.) I hope this explains it a bit clearer, I'm sorry if it was poorly explained before.
  • Comment on Re^2: Attempting to create a brute-force wordlist

Replies are listed 'Best First'.
Re^3: Attempting to create a brute-force wordlist
by zwon (Abbot) on Sep 20, 2009 at 16:39 UTC

    There are 36^10=3656158440062976 different 10 character words if you will use [0-9a-z] characters, and that would require quite a lot of disk space.

      True, but that is why I want to limit the numbers of characters to between 8 and 12. That would reduce the number considerably, and still make a pretty good dictionary.

        That doesn't make any sense to me, but maybe this (not very efficient) script will give you some ideas:

        #!/usr/bin/perl use 5.010; use strict; use warnings; use Convert::AnyBase; my $a = 0; my $base = Convert::AnyBase->new(set => '02468acez'); say $base->encode($a++) while "there's some disk space";
        I don't think you quite understood zwon's comment... There are 36^10 words composed of exactly 10 characters from [0-9a-z]. "Limiting" the number of characters to between 8 and 12 increases the number of combinations to 36^8 + 36^9 + 36^10 + 36^11 + 36^12, which adds up to 4873763581670522880 words.

        Assuming an average of 10 characters per word (which is low, as there are many more 12-character combinations than 8-character combinations, but I'm not going to bother calculating the actual average length), plus a separator to divide them, that makes 4873763581670522880 * 11 = 53611399398375751680 bytes, or about 46.5 exabytes (or 48.8 million terabytes, if you prefer that unit).

        Personally, I don't know anyone who has a few exabytes of spare disk sitting around to store all those words.

        There's also the minor detail that, if you're generating a billion words per second, it would take 154 years to create all the 8-12 character combinations, even without writing them to disk.