random_int

(PHP 7, PHP 8)

random_intObtém um número inteiro selecionado uniformemente e criptograficamente seguro

Descrição

random_int(int $min, int $max): int

Gera um número inteiro selecionado uniformemente entre o mínimo e o máximo fornecidos.

A aleatoriedade gerada por esta função é adequada para todas as aplicações, incluindo a geração de segredos de longo prazo, como chaves de criptografia.

As fontes de aleatoriedade usadas para esta função são as seguintes:

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22 se CCRandomGenerateBytes estiver disponível em tempo de compilação): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Qualquer combinação de sistema operacional e versão do PHP não mencionada anteriormente: /dev/urandom
  • Se nenhuma das fontes estiver disponível ou todas falharem em gerar aleatoriedade, então uma exceção Random\RandomException será lançada.

Note: Embora esta função tenha sido adicionada ao PHP no PHP 7.0, uma » implementação no espaço do usuário está disponível para o PHP 5.2 ao 5.6, inclusive.

Parâmetros

min

O menor valor a ser retornado.

max

O maior valor a ser retornado.

Valor Retornado

Um número inteiro criptograficamente seguro e selecionado uniformemente do intervalo fechado [min, max]. Ambos min e max são valores de retorno possíveis.

Erros/Exceções

  • Se uma fonte apropriada de aleatoriedade não puder ser encontrada, uma exceção Random\RandomException será lançada.
  • Se max é menor que min, um ValueError será lançado.

Registro de Alterações

Versão Descrição
8.2.0 No caso de uma falha de CSPRNG, esta função agora lançará um Random\RandomException. Anteriormente um raso Exception era lançado.

Exemplos

Example #1 Exemplo de random_int()

<?php
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
?>

O exemplo acima produzirá algo semelhante a:

int(248)
int(-898)

Veja Também