Bezeichnung
RndStrong -- erzeugt eine kryptographisch sichere zufällige Zahl (V7.1)
Übersicht
result = RndStrong(type, param)
Beschreibung
Mit diesem Befehl können kryptographisch sichere Pseudozufallszahlen erzeugt werden. Die von RndStrong() zurückgegebenen Zahlen sind viel zufälliger als die, welche von Rnd() oder RndF() erzeugt werden. Deshalb sind beide nicht für kryptographiesches geeignet.

RndStrong() kann in zwei verschiedenen Modi arbeiten: Wenn Sie #INTEGER in type übergeben, wird ein einzelner Ganzzahlenwert zurück gegeben, der nicht kleiner als 0 und nicht größer als die in param übergebenen Ganzzahl ist (aber er könnte gleich param sein). Wenn Sie #STRING in type übergeben, erzeugt RndStrong() eine Zeichenkette aus Zufallsbytes von param. D.h. wenn Sie #STRING übergeben, gibt param die gewünschte Länge der Zeichenkette an.

Seien Sie gewarnt, dass RndStrong() im Vergleich zu Rnd() und RndF() sehr langsam ist. Deshalb sollten Sie ihn nicht zu oft aufrufen, sondern die Ergebnisse zwischenspeichern, wenn Sie viele sehr zufällige Zahlen benötigen. Beispielsweise könnte man RndStrong() mit type auf #STRING und param auf 65536 aufrufen, um eine Zeichenkette mit 64kb Zufallszahlen zu erzeugen. Sobald Sie diese verbraucht haben, können Sie sie den Befehl erneut aufrufen, um weitere Zufallszahlen zu erhalten.

Beachten Sie auch, dass auf AmigaOS 3.x und AROS RndStrong() derzeit auf Rnd() zurückgreift, da diese Betriebssysteme keine kryptographiefesten Zufallsgeneratoren anbieten.

Siehe auch Rnd() und RndF().

Eingaben
type
Typ der zu erzeugenden Daten; kann entweder #INTEGER oder #STRING sein (siehe oben)
param
größte annehmbare Ganzzahl, wenn bei type #INTEGER übergeben wurde, oder die Länge der zu erzeugenden Zeichenkette, wenn type #STRING ist.
Rückgabewerte
result
Zufallszahl(en) entweder als Zeichenketten- oder Ganzzahlenwert
Beispiel
num=RndStrong(#INTEGER, 49)
Nun, ich kann nicht vorhersagen, welchen Wert num erhalten wird. Ich kann nur sagen, dass er nicht größer als 49 und nicht kleiner als Null ist.

Navigation zeigen