Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Random: Delphi vs. Lazarus? (https://www.delphipraxis.net/178832-random-delphi-vs-lazarus.html)

AlexII 31. Jan 2014 10:58

AW: Random: Delphi vs. Lazarus?
 
Aber wie sieht es mit der Sicherheit der Passwörter aus? Die von Delphi sind schneller zu knacken wie ich verstehe.
Gib's eigentlich einen Cross-Platform-Zufallsgenerator, der NSA oder "Wasser und Bombenfest" ist?

Namenloser 31. Jan 2014 11:07

AW: Random: Delphi vs. Lazarus?
 
Zitat:

Zitat von cookie22 (Beitrag 1246118)
Darum sollte man ja Randomize nicht zu schnell zu oft aufrufen. :P

Das habe ich doch gerade gesagt. Eigentlich sollte man es nur einmal aufrufen.

gammatester 31. Jan 2014 11:15

AW: Random: Delphi vs. Lazarus?
 
Zitat:

Zitat von AlexII (Beitrag 1246128)
Aber wie sieht es mit der Sicherheit der Passwörter aus? Die von Delphi sind schneller zu knacken wie ich verstehen.
Gib's eigentlich einen Cross-Platform-Zufallsgenerator, der NSA oder "Wasser und Bombenfest" ist?

Passwörter sollte man nicht mit dem Delphi-Generator erzeugen, jedenfalls nicht algorithmisch nur mit einem Programm: Wenn der Sourcecode/PW-Algorithmus nicht gekannt ist, dann kann man nicht sicher sein, ob irgendetwas Unerwünschtes :) drin ist; wenn er bekannt ist, kann man ihn in (Milli-)Sekunden knacken, man probiert halt alle 2^32 Seeds aus (siehe zB hier für das super-geheime Passwort ylCvlgU5$wGWRmCcIyg ... LbhsjCbg).

Es gibt wohl sichere Generatoren (zB Fortuna), aber das Hauptproblem ist das Seeding bzw. Reseeding, speziell auf embedded Systemen; d.h. der eigentliche Engpaß ist ein gute (externe) Entropie-Quelle.

himitsu 31. Jan 2014 11:29

AW: Random: Delphi vs. Lazarus?
 
Zitat:

Zitat von Namenloser (Beitrag 1246113)
Ich hab nicht im Kopf wie der RNG von Delphi genau funktioniert, ich hab nur irgendwann mal die Erfahrung gemacht. Vielleicht lief der Code auch so schnell, dass die Seeds tatsächlich häufig komplett gleich waren.

Es ist egal wie schnell, da der RNG von Delphi immer raufrechnet.

Es sei denn du hattes den Fehler der Fehler gemacht und Randomize zu häufig aufgerufen.

Namenloser 31. Jan 2014 11:34

AW: Random: Delphi vs. Lazarus?
 
Zitat:

Zitat von himitsu (Beitrag 1246140)
Es sei denn du hattes den Fehler der Fehler gemacht und Randomize zu häufig aufgerufen.

Ja, wie oft soll ich es noch sagen? Deshalb hatte ich ja gefragt, ob er den Fehler vielleicht auch gemacht hat. Nicht nur ich hab den Fehler damals gemacht, ich hab ihn auch bei anderen Anfängern schon öfters gesehen...

Denn an sich wüsste ich nicht, wieso das normale Delphi-Random sonst „schlechte“ Zufallsfolgen ausspucken sollte. Der RNG taugt vielleicht nicht für kryptografische Zwecke, aber bemerkbare Regelmäßigkeiten treten da eigentlich nicht auf (anders als z.B. beim Standard-random von PHP).

creed steiger 31. Jan 2014 14:48

AW: Random: Delphi vs. Lazarus?
 
Dazu gabs eine längere Diskussion auf der FPC Mailinglist
http://lists.freepascal.org/lists/fp...er/031464.html

cookie22 31. Jan 2014 14:50

AW: Random: Delphi vs. Lazarus?
 
Zitat:

Zitat von Namenloser (Beitrag 1246132)
Eigentlich sollte man es nur einmal aufrufen.

Nein, das ist eigentlich egal, solang du nicht den gleichen Seed hast.

Also Randomize NICHT zu oft aufrufen, dann kann so etwas passieren.:warn:

Namenloser 31. Jan 2014 14:59

AW: Random: Delphi vs. Lazarus?
 
Zitat:

Zitat von cookie22 (Beitrag 1246156)
Zitat:

Zitat von Namenloser (Beitrag 1246132)
Eigentlich sollte man es nur einmal aufrufen.

Nein, das ist eigentlich egal, solang du nicht den gleichen Seed hast.

Also Randomize NICHT zu oft aufrufen, dann kann so etwas passieren.:warn:

Auch wenn du einen anderen Seed setzt, verkürzt du auf jeden Fall die Periode. Mir fällt auch kein vernünftiger Grund ein, es mehr als einmal aufzurufen.

himitsu 31. Jan 2014 15:37

AW: Random: Delphi vs. Lazarus?
 
Früher ging Randomize mal auf GetTickCount, welches meistens in einem Intervall von 16 Millisekunden hochzählte. (glaub ich)

Aber da Zuviele zuviele Fehler machenten, wurde es umgebaut.
Inzwischen wird wohl QueryPerformanceCounter verwendet, damit sich solche Fehler nicht all zu sehr auswirken.
Und für die, welche Randomize vergessen aufzurufen, macht das jetzt die VCL einmal, beim Start.


Man könnte zwar Randomize oder den Seed öfters aufrufen/setzen, aber der Zufallsgenerator hat irgendwie soeine durchschnittliche "Gleichverteilung" und diese Verteilung der Zufallswerte könnte man damit negativ beeinflussen.
Also, im Normalfall kommen alle Zufallszahlen, über einen ausreichend großen Bereich hinweg, ungefähr gleich oft vor.


Ein "Vorteil" am Delphi-Random ist, daß man, ausgehend von einem bestimmten Seed, immer die selben Zahlen bekommt. (solange keiner die zugrundeliegende Berechnung verändert)

cookie22 31. Jan 2014 15:46

AW: Random: Delphi vs. Lazarus?
 
Zitat:

Zitat von himitsu (Beitrag 1246160)
...und diese Verteilung der Zufallswerte könnte man damit negativ beeinflussen.

Ist der Seed unterschiedlich, sollte das völlig egal sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz