fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <time.h>
  5. #if defined(_WIN32)
  6. #include <windows.h>
  7. void SLEEP(unsigned int ms) { Sleep(ms); }
  8. #else
  9. #include <unistd.h>
  10. void SLEEP(unsigned int ms) { usleep(ms); }
  11. #endif
  12.  
  13. long generate_crypt_key(int seed)
  14. {
  15. int o_seed = seed, seedlen = (int)log10((double)seed)+1, o_seedlen = (int)log10((double)o_seed)+1;
  16. char keystr[o_seedlen+seedlen+7]; long key; seed ^= time(NULL);
  17.  
  18. int b = 1, c = 0, *a = &seed;
  19. int a_1 = ~(int)a & c; int a_2 = 1;
  20. for(int i = 0; i < 7; i++) a_2 *= i;
  21. if((int)a == a_1) *a = 0;
  22.  
  23. int a_3 = (!a) ? (c = 1):(b = 0);
  24. int a_4 = (int)a | (b + ~c);
  25. *a = (int)a >> c;
  26. *a = (int)a & 0xF8;
  27. *a = (int)a << ((int)pow(b,c)+(int)pow(c,b));
  28.  
  29. if(*a == 0) return -1;
  30. *a = (int)a ^ ((a_1|a_2)&(a_3|a_4));
  31. *a = ((int)a | (o_seed ^ 0xF2)) & ((int)&a);
  32.  
  33. sprintf(keystr, "%d", o_seed|seed);
  34. sprintf(keystr, "%s%d", keystr, *a);
  35. sprintf(keystr, "%s%d", keystr, &a);
  36.  
  37. key = (long)abs(atoi(keystr)) & time((time_t*)(time(NULL)&seed));
  38. free((void*)a); return key;
  39. }
  40.  
  41. long *generate_keyset(long setsize, unsigned seed)
  42. {
  43. long *keyset = malloc(setsize);
  44. srand((unsigned int) seed);
  45. int t = rand();
  46. srand((unsigned int) seed ^ (setsize | 0xF6));
  47. int p = seed ^ rand();
  48. srand((unsigned int) seed & time(NULL));
  49. seed &= ((p*100000^t*100000) | (seed^(p&t)));
  50. for(int i = 0; i < setsize; i++) {
  51. srand((unsigned int) rand()+((i*i)^seed)); srand((unsigned int) rand());
  52. keyset[i] = (generate_crypt_key((seed^rand()) | ((seed & (time(NULL) ^ seed))))<10000000)?
  53. generate_crypt_key((seed^rand()) | ((seed & (time(NULL) ^ seed))))*10000+rand():
  54. generate_crypt_key((seed^rand()) | ((seed & (time(NULL) ^ seed))));
  55. keyset[i] = abs(keyset[i]);
  56. SLEEP(1250);
  57. }
  58. return keyset;
  59. }
  60.  
  61. int main(int argc, char **argv)
  62. { if(argc != 2) { printf("USAGE: %s SET_SIZE", argv[0]); return -1; }
  63. unsigned int setsize = atoi(argv[1]);
  64. srand((unsigned int) time(NULL));
  65. srand((unsigned int) rand());
  66. srand((unsigned int) rand());
  67. int seed = rand() ^ time(NULL);
  68. seed ^= time(NULL);
  69. long *keyset = generate_keyset(setsize, seed);
  70. for(int j = 0, p = 0; j < setsize; j++) {
  71. printf("%ld\t", keyset[j]);
  72. p++;
  73. if(p >= 5) { printf("\n"); p = 0; }
  74. }
  75. return 0;
  76. }
Runtime error #stdin #stdout 0s 9432KB
stdin
5
stdout
USAGE: ./prog SET_SIZE