Hallo, Am Wed, 13 Oct 2004, Ferdinand Ihringer schrieb:
On Wednesday 13 October 2004 00:08, David Haller wrote: [..]
Und vielleicht 'gettimeofday' oder statt 'time'. Das mit der PID ist sicherlich auch noch ne Idee. [..] Evtl. koennte mann das Ergebnis auch noch durch einen Hash-Algorithmus schicken, z.B. MD5 oder SHA1 und dies dann wieder auf 'sizeof(unsigned int)' "kuerzen" (und zwar nicht mit nem einfachen 'mod').
Eine Frage aus reinem Interesse: Wie würde man das machen? Einfach von den 16-MD5 die sizeof(unsigned int) ersten Bytes nehmen?
Das wäre eine Möglichkeit. Oder die 128 bit in Blöcke zu je sizeof(int) teilen und die Blöcke verXORen oder so. Das hilft allerdings immer noch nicht dagegen, daß du innerhalb einer Sekunde immer den gleichen seed bekommst. Schau mal in /usr/src/linux/drivers/char/random.c (v.a. auch die Kommentare) und schau mal, ob du da nicht noch ein "besseres" Zufallselement in den seed reinbekommst. Ich würde jedenfalls im ./configure auf /dev/urandom testen und wenn das vorhanden ist das zum initialisieren verwenden. Ob und wie du unter Win* an Zufallsdaten oder zumindest an eine genauere "Zeit" als 'time()' rankommst weiß ich nicht. Vorhanden ist sowas aber wohl. Da musst du dann halt wohl oder übel mit ein paar #defines / #ifdefs rumwerfen. -dnh -- "It's fifteen hundred miles to Ankh-Morpork, we've got three hundred and sixty-three elephants, fifty carts of forage, the monsoon's about to break and we're wearing... we're wearing... sort of things, like glass, only dark... dark glass things on our eyes... ... Let's go!" -- T. Pratchett, "Moving Pictures"