Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

PHP und Zufallszahlen bis 4294967295 (FFFFFFFF)

Hi!

Da die interne Funktion getrandmax() nur Zufallszahlen im Integerbereich liefert, würde ich gerne wissen, wie ich Zufallszahlen bis 4294967295 generieren kann?

Und das ganze auf einem 32 bit Rechner! *g* Beim Umrechnen von Dezimal auf Hex musste ich bei den grösseren Zahlen (ab 7FFFFFFF) auch mit einem Trick arbeiten.

Wie gehe ich das Problem bei den Zufallszahlen an?

Liebe Grüsse.

Hier gehts zum Orginal Eintrag "PHP und Zufallszahlen bis 4294967295 (FFFFFFFF)" im Forum

Antworten

Mit einem Trick? :D
Nein, ich habe keine Ahnung aber mal eine ganz andere Idee. Ich weiß ja nicht, wofür Du das Ganze verwenden willst, aber müssen es unbedingt Zufallszahlen sein? Andernfalls würde ich nämlich time() oder date() verwenden. Nur so als Gedanke...


2.

wie lizzy schon sagte, time() wäre ne passende alternative, die eventuell noch mit ner zufallszahl multiplizieren und dann auf die passende länge kürzen damit es ein wenig zufälliger ist.
ne andere alternative wüsste ich da leider so auf die schnelle auch nicht...

aber mich würd auch echt ma interessieren wofür man solche großen zufallszahlen brauch ...


3.

Umständlich, aber geht :)

Zufallszahlen in beliebiger Größe:
Code:                   In Zwischenablage kopieren (nur IE)
1">




4.

Um Zufallszahlen im ganzen 32bit-Raum zu generieren kannst Du die nachfolgende Funktion lrand() benutzen - aber da PHP keine vorzeichenlose Integer unterstützt liefert die Funktion natürlich auch negative Werte, wenn das HighOrder Bit 1 ist - das mußt Du bei der Benutzung berücksichtigen:

Code:                   In Zwischenablage kopieren (nur IE)
2">




5.

Hi!

Danke allerseits. Habe es auch auf diese Art und Weise implementiert.

Ich habe zum Spass mal probiert meinen Router zu "brute forcen" *g*

Die fopen-Fuktion kann in der Minute 1230 Anfragen ([url]http://user:pwd@IP:Port/file.htm[/url] überprüfen und liefert true oder false zurück.

Leider braucht das bei 8 Hexadezimalen Zeichen (also bei 4294967295 Möglichkeiten) ziemlich lange (6,6 Jahre, wenn das Gerät immer läuft). Und so wie es aussieht, liegt diese Begrenzung am Router, denn wenn man es auf zwei PC's gleichzeitig probiert, halbieren sich die Anfragen jeweils.

Denke daher, dass es hier mit einem Zufallsgenerator einfacher wäre und dass es schneller zum Ziel führen würde, oder?

Code:                   In Zwischenablage kopieren (nur IE)
3">

Meint ihr, man könnte die Versuche pro Minute noch etwas erhöhen? Die WinZIP oder WinRAR Brute-Forece Programme erledigen ja in der Sekunde 1 Million Möglichkeiten.

Liebe Grüsse.


6.

Zitat:
Denke daher, dass es hier mit einem Zufallsgenerator einfacher wäre und dass es schneller zum Ziel führen würde, oder?
Und Werte die bereits erfolglos ausprobiert wurden willst du irgendwo speichern und bei jedem neuen Zufallswert überprüfen ob der Wert schon mal benützt wurde?
Scheint mir nicht grad die Optimale Lösung


7.

Das Zauberwort heist "Permutation"


8.

Zitat:
Das Zauberwort heist "Permutation"
Siehe http://www.phpforum.de/forum/showtopic.php?threadid=35188


Hier gehts zum Orginal Eintrag "PHP und Zufallszahlen bis 4294967295 (FFFFFFFF)" im Forum
 
phpforum.de | Impressum