Obtém bytes aleatórios de uma string de origem

# Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromString — Obtém bytes aleatórios de uma string de origem

### Descrição

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

Gera uma string contendo bytes aleatórios selecionados uniformemente a partir da `string` de entrada com o comprimento solicitado em `length`.

A chance de um byte ser selecionado é proporcional à sua participação na `string` de entrada. Se cada byte ocorrer a mesma quantidade de vezes, cada byte terá a mesma probabilidade de ser selecionado.

### Parâmetros

`string`

  A string da qual os bytes retornados são selecionados.

`length`

  O comprimento da string aleatória que deve ser retornada em bytes; deve ser `1` ou maior.

### Valor Retornado

Uma string contendo o número solicitado de bytes aleatórios retirados da `string` de entrada.

### Erros/Exceções

- Se `string` estiver vazio, um ValueError será gerado.
- Se o valor de `length` for menor que `1`, um ValueError será gerado.
- Qualquer erro ou exceção Throwable lançados pelo método Random\Engine::generate() do mecanismo `Random\Randomizer::$engine` subjacente.

### Exemplos

Exemplo #1 Exemplo de Random\Randomizer::getBytesFromString()

    <?php
    $randomizer = new \Random\Randomizer();

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

O exemplo acima produzirá algo semelhante a:

    3zsw04eiubcf82jd.example.com

Exemplo #2 Gerando um código aleatório para autenticação multifator

    <?php
    // O mecanismo Secure é o padrão, mas o tornamos explícito porque
    // códigos multifatoriais são sensíveis à segurança.
    $randomizer = new \Random\Randomizer(new \Random\Engine\Secure());

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

O exemplo acima produzirá algo semelhante a:

    11551-80418-27047-42075

Exemplo #3 Selecionando de uma string com distribuição não uniforme

    <?php
    $randomizer = new \Random\Randomizer();

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

O exemplo acima produzirá algo semelhante a:

    fddacbeaaeaaacaaaaca

### Veja Também

- Random\Randomizer::getBytes() - Obtém bytes aleatórios

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open