random_bytes

(PHP 7)

random_bytesGenerates cryptographically secure pseudo-random bytes

Descrierea

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.

Sursele de valori aleatorii utilizate pentru această funcție sunt următoarele:

  • Pe Windows se va utiliza întotdeauna » CryptGenRandom(). Începând cu PHP 7.2.0 se va utiliza întotdeauna » CNG-API.
  • Pe Linux se va utiliza apelul de sistem (syscall) » getrandom(2) dacă este disponibil.
  • Pe alte platforme se va utiliza /dev/urandom.
  • Dacă nici una din sursele menționate nu sunt disponibile, va fi emisă o excepție Exception.

Notă: Cu toate că această funcție a fost adăugată în PHP 7.0, o » implementare în spațiul utilizatorului este disponibilă pentru PHP de la versiunea 5.2 până la 5.6 inclusiv.

Parametri

length

The length of the random string that should be returned in bytes.

Valorile întoarse

Returns a string containing the requested number of cryptographically secure random bytes.

Erori/Excepții

  • Dacă nu poate fi găsită o sursă potrivită de valori aleatorii, va fi emisă o excepție Exception.
  • Dacă sunt furnizați parametri incorecți, va fi emisă o excepție TypeError.
  • If an invalid length of bytes is given, an Error will be thrown.

Exemple

Example #1 random_bytes() example

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

Exemplul de mai sus va afișa ceva similar cu:

string(10) "385e33f741"

A se vedea și

add a note add a note

User Contributed Notes 1 note

up
-1
ccbsschucko at gmail dot com
6 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