Statement on glibc/iconv Vulnerability

Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromStringПолучает случайные байты из исходной строки

Описание

public Random\Randomizer::getBytesFromString(string $string, int $length): string

Генерирует из входной строки string строку, содержащую равномерно выбранные случайные байты заданной параметром length длины.

Вероятность выбора байта пропорциональна его доле во входной строке string. Если каждый байт встречается одинаковое количество раз, вероятность выбора каждого байта будет одинаковой.

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

string

Строка (string), из которой выбираются возвращаемые байты.

length

Длина случайной строки (string) в байтах, которая должна быть возвращена; должна быть равна 1 или больше.

Возвращаемые значения

Возвращает строку (string), содержащую запрошенное количество случайных байтов, взятых из входной строки string.

Ошибки

Примеры

Пример #1 Пример использования метода Random\Randomizer::getBytesFromString()

<?php

$randomizer
= new \Random\Randomizer();

printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>

Вывод приведённого примера будет похож на:

3zsw04eiubcf82jd.example.com

Пример #2 Пример генерации случайного кода для многофакторной аутентификации

<?php

// Движок Secure установлен по умолчанию, но укажем его явно, потому что
// многофакторные коды чувствительны к безопасности.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());

echo
implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>

Вывод приведённого примера будет похож на:

11551-80418-27047-42075

Пример #3 Пример выбора из строки с неравномерным распределением

<?php

$randomizer
= new \Random\Randomizer();

echo
$randomizer->getBytesFromString('aaaaabcdef', 20);
?>

Вывод приведённого примера будет похож на:

fddacbeaaeaaacaaaaca

Смотрите также

add a note

User Contributed Notes

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