Longhorn PHP 2023 - Call for Papers

random_bytes

(PHP 7, PHP 8)

random_bytesGet cryptographically secure random bytes

Descrição

random_bytes(int $length): string

Generates an arbitrary length string of cryptographic random bytes that are suitable for cryptographic use, such as when generating salts, keys or initialization vectors.

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

  • No Windows, a função » CryptGenRandom() sempre será usada. A partir do PHP 7.2.0, a » CNG-API sempre será usada em seu lugar.
  • No Linux, a chamada de sistema » getrandom(2) será usada, se disponível.
  • Em outras plataformas, /dev/urandom será usada.
  • Se nenhuma das fontes mencionadas estiver disponível, então uma exceção Random\RandomException será lançada.

Nota: 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

length

The length of the random string that should be returned in bytes; must be 1 or greater.

Valor Retornado

A string containing the requested number of cryptographically secure random bytes.

Erros

  • Se uma fonte apropriada de aleatoriedade não puder ser encontrada, uma exceção Random\RandomException será lançada.
  • If the value of length is less than 1, a ValueError will be thrown.

Changelog

Versão Descrição
8.2.0 In case of a CSPRNG failure, this function will now throw a Random\RandomException. Previously a plain Exception was thrown.

Exemplos

Exemplo #1 random_bytes() example

<?php
$bytes
= random_bytes(5);
var_dump(bin2hex($bytes));
?>

O exemplo acima produzirá algo semelhante a:

string(10) "385e33f741"

Veja Também

add a note

User Contributed Notes 1 note

up
5
ccbsschucko at gmail dot com
5 years ago
<?php
   
function str_rand(int $length = 64){ // 64 = 32
       
$length = ($length < 4) ? 4 : $length;
        return
bin2hex(random_bytes(($length-($length%2))/2));
    }
   
   
var_dump(str_rand());
   
// d6199909d0b5fdc22c9db625e4edf0d6da2b113b21878cde19e96f4afe69e714
?>
To Top