result = RndStrong(type, param)
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.
#INTEGER
oder #STRING
sein (siehe oben)type
#INTEGER
übergeben wurde, oder die Länge der zu erzeugenden Zeichenkette,
wenn type
#STRING
ist.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.