Advertisement
Guest User

Untitled

a guest
Aug 8th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.13 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <sys/types.h>
  6. #include <sys/stat.h>
  7. #include <fcntl.h>
  8.  
  9. #define N 10
  10.  
  11. char *chars="qwertyuiopasdfghjklzxcvbnm0123456789$#%&=!?";
  12.  
  13. char *
  14. gen_key(int randfd, int len)
  15. {
  16.         char *pw=malloc(len+1);
  17.         int r;
  18.  
  19.         r=0;
  20.  
  21.         while (r < len)
  22.                 r+=read(randfd,pw+r,len-r);
  23.  
  24.         for (int i=0; i < len; i++)
  25.                 pw[i]=chars[pw[i]%strlen(chars)];
  26.  
  27.         pw[len]='\0';
  28.  
  29.         return pw;
  30. }
  31.  
  32. int
  33. main(int argc, char **argv)
  34. {
  35.         int f;
  36.        
  37.         if (argc != 2)
  38.         {
  39.                 printf("Sintaxe: %s <length>",argv[0]);
  40.                 return -1;
  41.         }
  42.  
  43.         f=open("/dev/random",O_RDONLY);
  44.        
  45.         if (f < 0)
  46.         {
  47.                 perror("open()");
  48.                 return -1;
  49.         }
  50.  
  51.         for (int i=0; i < N; i++)
  52.         {
  53.                 char *p;
  54.                 puts(p=gen_key(f,atoi(argv[1])));
  55.                 memset(p,0,strlen(p));
  56.                 free(p);
  57.         }
  58.  
  59.         close(f);
  60.        
  61.         return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement