Am Samstag, 9. Oktober 2004 03:57 schrieb David Haller: [...]
Hast du daran gedacht, dass das Programm evtl. mehrere User "fast gleichzeitig" (innerhalb der selben Sekunde) aufrufen koennten?
Mit der gleichen Signaturdatei? Wir reden doch hier nicht von einem Enterprise-Signaturgenerator. Und selbst wenn das Teil für so einen Zweck eingespannt wird und mehrere User die gleiche Signatur haben - na und?
Das initialisieren aus /dev/urandom erschlaegt das Problem effektiv, ein Signature-Server (oder "persistenter Dienst") hingegen ist wesentlich komplexer zu programmieren.
Ich meinte damit auch nicht einen Signaturserver. Sowas würde ich nie programmieren, weil das für so eine simple Anwendung erst recht mit Kanonen auf Spatzen geschossen wäre. Die Initialisierung mit srand (time (0)) ist für diesen Fall eben _kein_ Problem, weils nicht drauf ankommt.
Als Zufallszahl, kann man schlicht die aus /dev/urandom gelesene verwenden. Die ist sowieso "besser".
Und fuer echte Zufallszahlen ist rand(3) ja sowieso ungeeignet. rand(3) ist ja noch nichtmal ein guter PRNG (bzw. ist gar kein PRNG?). [...]
Das stimmt ja alles - aber nochmal: Für einen simplen Signatur-Selektor ist das völlig überzogen, die Qualität der Zufallszahl ist für diese Anwendung nebensächlich. Ich ziehe es vor, für einfache Probleme auch möglichst einfache Lösungen einzusetzen (KISS). BTW: Man kann auch völlig auf Zufallszahlen verzichten und z. B. per time(0) % signatur die aktuelle Signatur ermitteln - auch das würde schon (bei nicht zu großen Signaturdateien - sagen wir mal <10.000 Einträge) ausreichen. Die Zufälligkeit der Zeitspanne zwischen 2 verschickten Mails ist für diese Anwendung gut genug. Jan -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org