Hallo Freunde des gehobenen Forumsgenusses,
Dieser Algorithmus ist nicht sicher, da er unter bestimmten Vorausetzungen das gleiche Paßwort mehrfach ausgeben könnte.
Das ist aber _sehr_ unwahrscheinlich. Ich habe mal 1Mio Passwörter hintereinander damit erzeugt
(auf einem Athlon XP 2500+, 1GB RAM) und bekam kein doppeltes Passwort (mit immer gleicher IP).
Die Voraussetzung sind auch so ungewöhnlich nicht: es ist lediglich ein Multiprozessorsystem nötig und ein Router/Proxie o.ä. damit $_SERVER['REMOTE_ADDR'] gleich bleibt.
Hm, wenn ich serialize(($_GET|$_POST|$_SERVER)) dazunehme, wird sowas auch unwahrscheinlicher.
Dann kann diese Funktion zweimal zur gleichen Zeit ausgeführt werden [...]
Kann man irgendwie $_HARDWARE['PROZESSOR_NUMBER'] dazunehmen ? ;-)
microtime() hat zudem auf heutigen GHz Boliden nicht unbedingt die erforderliche Auflösung um sowas auch bei Einprozessorsystemen zu verhindern.
Gibts was genaueres? Ich hab nix gefunden.
Tja, auch mit dem besten kryptographischen Werkzeugen kann man sich mühelos selber in den Fuß schießen ;-)
Kann man auch mit den einfachen Dingen des Lebens (ich darf an die goto-Zeiten erinnern ;-))
Lösung des Dilemmas ist im einfachstem Fall ein Lockfile, das den aktuellen Seed enthält. Der nächste, der das Lockfile erhält kann reinschauen und bei Seedgleicheit einen neuen erzeugen.
Ist zwar nicht sehr elegant, ist aber simpel und funktioniert.
Das ist natürlich eine Lösung. In meinem Fall kann ich aber meinen Algorithmus behalten,
der ist dazu da, bei einem Formmailer dem Formular eine ID mitzugeben,
nur wer eine gültige ID hat, darf dann eine Mail verschicken :-)
Gruß
Alexander Brock
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }