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

Re: Word lists for passphrases



>[email protected], in a profound display of stubbornness, continues
>to insist that his program to enumerate all possible words of length N
>(that is, aaaaa, aaaab, aaaac, etc.) is somehow interesting. I am
>therefore forced to drive in the nail with a sledgehammer. Forgive me.

>------Cut Here------
>/*
>   This could be more elegant, but the point is obviousness.
>*/
>#include <stdio.h>
>
>int main()
>{
>        char i[6];
>
>        for (i[0] = 'a'; i[0] < 'z'; i[0]++)
>          for (i[1] = 'a'; i[1] < 'z'; i[1]++)
>            for (i[2] = 'a'; i[2] < 'z'; i[2]++)
>              for (i[3] = 'a'; i[3] < 'z'; i[3]++)
>                for (i[4] = 'a'; i[4] < 'z'; i[4]++)
>                  printf("%s\n", i);
>}
>------Cut Here------
>
>Perry

I agree with you, but it could also be correct.

Since the char array is allocated on the stack as an auto, its contents are
not guaranteed. So i[5]='\0'; is needed as the first statement.

And of course it will never include a 'z' because the '<' will not permit
it. Replace all the '<' with '<='.

Plus there is the small matter of non-ASCII character representations
breaking the increments and comparisons.

Oh, and don't forget that main() returns an integer. This will generate at
least a warning from the compiler, since the code does not return anything.
It may well return a random number or something that will be interpreted as
an error code.

(also less than a minute's work)


-------------------------------------------------------------------------
Steven Weller                      |  Technology (n):
                                   |
                                   |     A substitute for adulthood.
[email protected]                   |     Popular with middle-aged men.