Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include <argp.h>
- #include <unistd.h>
- //#include "parse_options.sh"
- void get_pass(char * alph, char * pass, int pos, int len)
- {
- int i;
- if (pos == len)
- printf("%s\n", pass );
- else
- for(i = 0; alph[i]; i++)
- {
- pass[pos] = alph[i];
- get_pass(alph, pass, pos+1, len);
- }
- }
- void brute_rec (char * alph, int len)
- {
- char pass[len+1];
- pass[len] = 0;
- get_pass(alph, pass ,0 ,len);
- }
- void brute_iter(char *alph, int len)
- {
- int alph_len_1 = strlen(alph) - 1;
- char pass[len + 1];
- int idx[len];
- int i;
- pass[len] = 0;
- for (i = 0; i < len; ++i)
- idx[i] = 0;
- for(;;)
- {
- for (i = 0; i < len; ++i)
- pass[i] = alph[idx[i]];
- printf ("%s\n", pass);
- for ( i = len - 1; (i >= 0) && (idx[i] == alph_len_1); --i)
- idx[i] = 0;
- if (i < 0)
- break;
- ++idx[i];
- }
- }
- int main (int argc, char *argv[])
- {
- char *alph = "";
- int len = 0;
- int c;
- while ((c = getopt (argc, argv, "a:l:ir")) != -1)
- {
- switch (c)
- {
- case 'a':
- alph = argv[2] ;
- case 'l':
- len = atoi(argv[4]);
- case 'i':
- brute_iter(alph,len);
- printf("%s \n", "brute_iter");
- break;
- case 'r':
- brute_rec(alph,len);
- printf("%s \n", "brute_rec");
- break;
- }
- break;
- }
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement