Statement on glibc/iconv Vulnerability

Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__constructСоздаёт новый движок PCG Oneseq 128 XSL RR 64

Описание

public Random\Engine\PcgOneseq128XslRr64::__construct(string|int|null $seed = null)

Внимание

Функцию пока не задокументировали; для знакомства доступен только список аргументов.

Список параметров

seed

Способ наполнения внутреннего 128-битного (16-байтного) состояния, состоящего из одного 128-битного целого числа без знака, зависит от типа, используемого в качестве параметра seed.

Тип Описание
null Заполняет состояние 16 случайными байтами, сгенерированными с помощью CSPRNG.
int Заполняет состояние, устанавливая состояние в 0, продвигая движок на один шаг, добавляя значение параметра seed, интерпретируемое как 64-битное целое число без знака и продвигая движок ещё на один шаг.
string Заполняет состояние, интерпретируя 16-байтовую строку (string) как little-endian 128-битное целое число без знака.

Ошибки

  • Если длина строкового (string) параметра seed не равна 16 байтам, будет выдана ошибка ValueError.

Примеры

Пример #1 Пример использования Random\Engine\PcgOneseq128XslRr64::__construct()

<?php
// Использование случайного 128-битного значения.
$e = new \Random\Engine\PcgOneseq128XslRr64();

$r = new \Random\Randomizer($e);
?>

Пример #2 Выведение значения из строки (string)

<?php
$string
= "My string seed";

// Хеширование строки усечённым SHA-256, используя двоичный вывод,
// чтобы превратить $string в 128-битное значение. Использование одной и той же
// строки приведёт к одной и той же случайной последовательности.
$e = new \Random\Engine\PcgOneseq128XslRr64(
substr(hash('sha256', $string, binary: true), 0, 16)
);

echo
bin2hex($e->generate()), "\n";
?>

Результат выполнения приведённого примера:

8333ef59315b16d8
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top