Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <argp.h>
  5. #include <unistd.h>
  6.  
  7. //#include "parse_options.sh"
  8. void get_pass(char * alph, char * pass, int pos, int len)
  9. {
  10. int i;
  11. if (pos == len)
  12. printf("%s\n", pass );
  13. else
  14. for(i = 0; alph[i]; i++)
  15. {
  16. pass[pos] = alph[i];
  17. get_pass(alph, pass, pos+1, len);
  18. }
  19. }
  20.  
  21. void brute_rec (char * alph, int len)
  22. {
  23. char pass[len+1];
  24. pass[len] = 0;
  25. get_pass(alph, pass ,0 ,len);
  26. }
  27.  
  28. void brute_iter(char *alph, int len)
  29. {
  30. int alph_len_1 = strlen(alph) - 1;
  31. char pass[len + 1];
  32. int idx[len];
  33. int i;
  34.  
  35. pass[len] = 0;
  36. for (i = 0; i < len; ++i)
  37. idx[i] = 0;
  38.  
  39. for(;;)
  40. {
  41. for (i = 0; i < len; ++i)
  42. pass[i] = alph[idx[i]];
  43. printf ("%s\n", pass);
  44.  
  45. for ( i = len - 1; (i >= 0) && (idx[i] == alph_len_1); --i)
  46. idx[i] = 0;
  47. if (i < 0)
  48. break;
  49. ++idx[i];
  50. }
  51. }
  52.  
  53. int main (int argc, char *argv[])
  54. {
  55. char *alph = "";
  56. int len = 0;
  57. int c;
  58. while ((c = getopt (argc, argv, "a:l:ir")) != -1)
  59. {
  60. switch (c)
  61. {
  62. case 'a':
  63. alph = argv[2] ;
  64.  
  65. case 'l':
  66. len = atoi(argv[4]);
  67.  
  68. case 'i':
  69. brute_iter(alph,len);
  70. printf("%s \n", "brute_iter");
  71. break;
  72.  
  73. case 'r':
  74. brute_rec(alph,len);
  75. printf("%s \n", "brute_rec");
  76. break;
  77. }
  78. break;
  79. }
  80.  
  81. return (EXIT_SUCCESS);
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement