Как Javascript преобразует результат xorshift128+ в значение с плавающей запятой от 0 до 1 для Math.random()? ⇐ Python
Как Javascript преобразует результат xorshift128+ в значение с плавающей запятой от 0 до 1 для Math.random()?
Мне нужно написать программу, использующую криптографическую небезопасность javascript Math.random() для CTF. Однако я не знаю, как javascript преобразует int в число с плавающей запятой между 0 и 1. Насколько я понимаю, алгоритм псевдорандомизации javascript — это xorshift128+, который в Python будет выглядеть примерно так:
def cast_to_int32(x): вернуть x и 0xffffffff защита xorshift128plus(): глобальное состояние0 глобальное состояние1 state0 = cast_to_int32(cast_to_int32(18030 * (state0 & 0xffff)) + cast_to_int32(state0 >> 16)) state1 = cast_to_int32(cast_to_int32(30903 * (state1 & 0xffff)) + cast_to_int32(state1 >> 16)) return cast_to_int32(cast_to_int32(state0
Мне нужно написать программу, использующую криптографическую небезопасность javascript Math.random() для CTF. Однако я не знаю, как javascript преобразует int в число с плавающей запятой между 0 и 1. Насколько я понимаю, алгоритм псевдорандомизации javascript — это xorshift128+, который в Python будет выглядеть примерно так:
def cast_to_int32(x): вернуть x и 0xffffffff защита xorshift128plus(): глобальное состояние0 глобальное состояние1 state0 = cast_to_int32(cast_to_int32(18030 * (state0 & 0xffff)) + cast_to_int32(state0 >> 16)) state1 = cast_to_int32(cast_to_int32(30903 * (state1 & 0xffff)) + cast_to_int32(state1 >> 16)) return cast_to_int32(cast_to_int32(state0
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Используют ли, когда и зачем numpy.random.rand(…) и numpy.random.random(…)?
Anonymous » » в форуме Python - 0 Ответы
- 65 Просмотры
-
Последнее сообщение Anonymous
-