diff options
Diffstat (limited to 'lib/lib3.c')
| -rw-r--r-- | lib/lib3.c | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -129,3 +129,35 @@ int mt_19937() return (y & 0xFFFFFFFF); } + +int mt_19937_timestamp_orcale() +{ + sleep(random_number_between(40,1000)); + + unsigned int seed = time(NULL); + printf("timestamp orcale seed: %u\n", seed); + mt_19937_seed(seed); + + sleep(random_number_between(40,1000)); + + return mt_19937(); +} +/*** + * is there a more clever way to do this than brute force? + * + **/ +void mt_19937_brute_force_timestamp() +{ + unsigned int start = time(NULL); + int rnd = mt_19937_timestamp_orcale(); + unsigned int stop = time(NULL); + unsigned int i; + // try every seed between start and stop + for(i=start;start<=stop;i++) { + mt_19937_seed(i); + if (rnd == mt_19937()) { + printf("found seed: %u\n", i); + break; + } + } +} |
