[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Word lists for passphrases



[email protected] wrote:
> 
> I have a util that will create a word list starting from aaaaaaaaaaa on up to
> anythingggggggg
> basically you could do every combination. Let me know if ya want it.
> 

Here's the C++ prog that I wrote 1.5 yrs ago for my friend who needed it
for genetic experiments on evidence in OJ "ZAEBAL" Simpson trial:


void nested_loops(int max_depth, int *lower,
      int *upper, void (*action)(int *indexes, int depth))
/*
   calls (*action) for every combination of numbers of size max_depth
   o max_depth - size of all combinations
   o lower     - lower boundaries for indices 0 -- max_depth - 1
   o upper     - upper boundaries for indices 0 -- max_depth - 1
   o action    - called for every combination

  Example:

   int lwr[] = { 'a', 'a' };
   int upr[] = { 'b', 'b' };
   nested_loops( 2, lwr, upr, some_action );

  calls some_action for every combination
  aa ab ba bb
*/
{
  int *indexes = new int[max_depth];
  int cur_depth = 0;
  indexes[cur_depth] = lower[cur_depth];
  do {
     if( indexes[cur_depth] < upper[cur_depth] ) {
       if( cur_depth == max_depth - 1 ) {
         (*action)( indexes, cur_depth ); // Acting only deep enough
         indexes[cur_depth]++;
       } else {
         cur_depth++;
         indexes[cur_depth]=lower[cur_depth];
       }
     } else {
       if( --cur_depth >= 0 )
         indexes[cur_depth]++;
     }
  } while( cur_depth >= 0 );
  delete [] indexes;
}

	- Igor.