Javascript für Zufallszahl?

3 Antworten

ich suche mich gerade dämlich im Netz und finde nichts zum Thema

Suchst du vielleicht nach genau dem? Dann kannst du nämlich lange suchen. Wonach man suchen muss ist erstmal der Timer für die 5 Minuten und dann die Zufallsfunkton

Wie sicher ist so ein Zufallszahlen-Script dann? Kann man die Zufallszahl erraten, voraussehen oder irgendwie herausfinden oder ist der Script 100% Save?

Das kann man nicht erraten, man könnte es aber Theoretisch manipulieren, weil es JavaScript ist, was jeder einsehen und manipulieren kann. Aber sonst wäre es soweit "sicher"

Was wird gebraucht?

Timer = setInterval
Anonyme funktion = function() {}
Zufallsfunktion = ... Folgt ...

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}

Nun, das war jetzt erstmal die Zufallsfunktion, dort können wir ein minimum Wert und ein maximum Wert dalassen.

Nun bauen wir den Timer und rufen diese Funktion auf;

setInterval(function()
{
  document.getElementsByClassName('KLASSE VOM ELEMENT WAS DIE ZAHL ZEIGEN SOLL').innerText = getRandomInt(0, 10);
}, 300000);

Die Zeit wird in Millisekunden gegeben, deshalb die 300K als Zahl.

Bei KLASSE VOM ELEMENT WAS DIE ZAHL ZEIGEN SOLL kannst du die Klasse von Element angeben, was die Zahl dann anzeigen soll. Wenn du diese nicht weißt, dann findest du die unter Rechtsklick > Element untersuchen und dann dort das Element auswählen

Bild zum Beitrag

Das Symbol ist zum Element auswählen

und dann nur noch eine Klasse aus class="klassen" raus suchen

 - (Computer, programmieren, HTML)
MrAmazing2  21.05.2021, 19:43

Math.random() ist nicht kryptographisch sicher!

Oder anders ausgedrückt: Man KANN die nächste Zahl vorherberechnen.

0
FaTech  21.05.2021, 19:46
@MrAmazing2

JavaScript ist allgemein nicht sicher, wenn es danach geht

Am Ende kann man es, ob Kryptographisch oder nicht immer manipulieren, da das auf dem Client läuft

0
MrAmazing2  21.05.2021, 19:52
@FaTech

Naja, er sagt nicht wofür er es braucht. Gibt sicher einen guten Grund.

Ich geh einfach mal davon aus, dass er nicht dumm ist, sondern weiß was er tut.

0
Mercedes55AMG 
Fragesteller
 21.05.2021, 20:41

Ja richtig, aber der Originalscript wird gespiegelt. Also Beispiel eine Live Übertragung im TV (Nur dummes Beispiel). Mir geht es darum wenn jemand diese Liveübertragung sehen würde und nicht an den Script kommt, ob er dann durch reine Mathematik den Algorythmus rausfinden könnte oder die Zahlen vorhersagen könnte.

Dein Beitrag hat mir schon sehr geholfen. Vielen lieben Dank. Nun arbeite ich nur noch an einer Art automatische Liste, damit die Zahlen die alle 5 Minuten generiert werden untereinander in einer unendlichen Liste aufgeführt werden.

0
FaTech  21.05.2021, 20:44
@Mercedes55AMG
document.getElementsByClassName('KLASSE VOM ELEMENT WAS DIE ZAHL ZEIGEN SOLL').innerText = getRandomInt(0, 10);

Das ersetzt ja immer die vorherige Zahl. Wenn du es aber so umänderst:

document.getElementsByClassName('KLASSE VOM ELEMENT WAS DIE ZAHL ZEIGEN SOLL').innerText += getRandomInt(0, 10) + '<br>';

Dann sollten die Zahlen untereinander erscheinen

1
Mercedes55AMG 
Fragesteller
 21.05.2021, 20:54
@FaTech

Vielen Dank, du bist für heute mein Held des Tages :-)

0
FaTech  21.05.2021, 21:02
@Mercedes55AMG

Habe gerade noch was entdeckt:

document.getElementsByClassName('KLASSE VOM ELEMENT WAS DIE ZAHL ZEIGEN SOLL')

Diese Funktion gibt alle Elemente zurück, die diese Klasse besitzen. Du musst also noch angeben, welches Objekt du genau haben willst. Das ganze ist ein array, also eine art liste. Die fängt mit Zählen an bei 0. Das kannst du mit [0] angeben.

document.getElementsByClassName('KLASSE VOM ELEMENT WAS DIE ZAHL ZEIGEN SOLL')[0].innerText ...

Was in den meisten fällen gebraucht wird, ist das erste Element, also 0, aber es kann auch sein, wenn es da mehrere gibt, dass du da eine andere Position brauchst. Da musst du selber mal bei deiner Seite schauen

(Mein Fehler, dass ich das nicht gleich geschrieben hatte😅)

0

Ein Computer kann keine Zufallszahlen erzeugen. Aber man kann Zahlen erzeugen, welche zufällig scheinen. (falls dir das nicht reicht musst du auf Physikalische Messungen ausweichen) Vielleicht gibt es in Javascript solch einen Befehl, welcher „unzufällige Zufallszahlen“ berechnen kann. Aber ich kann nicht in Javascript programmieren...

Woher ich das weiß:eigene Erfahrung

Das meiste wurde schon gesagt.

Aber benutze nicht Math.random(), wenn es sicher sein soll. Für eine kryptographisch sichere Zufallszahl solltest du die Web Crypto API benutzen.

https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues

(Ich geh mal davon aus, dass dir bewusst ist, dass JavaScript im Client läuft und somit einfach manipuliert werden kann.)

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
Mercedes55AMG 
Fragesteller
 21.05.2021, 20:39

Ja richtig, aber der Originalscript wird gespiegelt. Also Beispiel eine Live Übertragung im TV (Nur dummes Beispiel). Mir geht es darum wenn jemand diese Liveübertragung sehen würde und nicht an den Script kommt, ob er dann durch reine Mathematik den Algorythmus rausfinden könnte oder die Zahlen vorhersagen könnte.

1
MrAmazing2  21.05.2021, 20:50
@Mercedes55AMG

Dacht ich mir schon, dass du 'nen guten Grund hast.

Aber ja, dann solltest du die verlinkte Web Crypto API benutzen anstatt Math.random(). Dann läufst du keine Gefahr, dass jemand die nächste Zahl vorausberechnen kann. Den Rest hat dir FaTech schon schön beschrieben. ^^

1