javascript - Ce ar putea cauza ca Math.random() să genereze același număr „aleatoriu” la fiecare reîncărcare a paginii?


Îmi fac o aplicație Electron și în procesul de renderer am o metodă care apelează Math.random(). Doar un simplu return Math.floor(Math.random() * 1000), nimic special. Problema este că literalmente returnează aceleași numere de fiecare dată când rulez aplicația. 541, 271, 919, 284.. etc. De fiecare dată când redeschid aplicația, sunt aceleași numere în aceeași ordine.

Ce ar putea fi cauza acestui lucru?

EDIT: Aceasta este o problemă ciudată. După câteva teste am notat că

  • problema persistă doar în procesul renderer (scris în TypeScript și compilat folosind webpack).

  • window.crypto.getRandomValues(array) funcționează așa cum era de așteptat.

Răspuns #1

Se pare că apelarea cryptico.generateRSAKey() apelează Math.seedrandom() din seedrandom.js, care suprascrie Math.random().

Caz închis. Relaționat: https://github.com/wwwtyro/cryptico/issues/20