Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- void brute(int *v,char *usable,int D,int d);
- int main(int argc,char *argv[])
- {
- char *chars;
- unsigned int *v,
- min_len,
- max_len,
- i = 0;
- if(argc > 1)
- {
- printf("%s usage:\n"
- " input (stdin):\n"
- " UsableChars\n MinLen MaxLen\n"
- " output (stdout):\n"
- " possible_passwords seperated by \'\\r\'s\n"
- ,argv[0]);
- return 0;
- }
- chars = malloc(1);
- while(scanf("%c",&chars[i]) && chars[i] != '\r' && chars [i] != '\n')
- chars = realloc(chars,(++i)+1);
- chars[i] = '\0';
- scanf("%d %d",&min_len,&max_len);
- for(i = min_len; i <= max_len; i++)
- {
- v = malloc(sizeof(int)*i);
- brute(v,chars,i,0);
- free(v);
- printf("\n");
- }
- free(chars);
- return 0;
- }
- void brute(int *v,char *chars,int D,int d)
- {
- int i;
- for(v[d] = 0; v[d] < strlen(chars); v[d]++)
- {
- if(d+1 < D)
- brute(v,chars,D,d+1);
- else
- {
- for(i = 0; i < D; i++)
- printf("%c",chars[v[i]]);
- printf("\r");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement