openssl random pseudo bytes()

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_random_pseudo_bytes — Genererar en pseudorandomiserad sträng med bytes

Beskrivning

openssl_random_pseudo_bytes(int $length, bool &$strong_result = null): string

openssl_random_pseudo_bytes() genererar en sträng av pseudorandomiserade bytes med antalet bytes bestämt av length-parametern.

Funktionen kan också ange om en kryptografiskt stark algoritm användes för att generera de pseudorandomiserade bytesen via den valfria parametern strong_result. Det är ovanligt att värdet blir false, men vissa system kan vara föråldrade eller ha brister.

Parametrar

  • length — Längden på den önskade byte-strängen. Måste vara ett positivt heltal mindre än eller lika med 2147483647. PHP kommer att försöka konvertera denna parameter till ett icke-null-värde för att använda det.
  • strong_result — Om värdet skickas med kommer det att innehålla en boolsk värde som avgör om algoritmen som användes var kryptografiskt stark, till exempel säker för användning med GPG, lösenord etc. true om så är fallet, annars false.

Returnerar

Returnerar den genererade byte-strängen.

Fel/Undantag

openssl_random_pseudo_bytes() kastar ett undantag vid fel.

Changelog

Version Beskrivning
8.0.0 strong_result är nu nullable.
7.4.0 Funktionen returnerar inte längre false vid fel, utan kastar istället ett undantag.

Exempel

Exempel #1 openssl_random_pseudo_bytes() exempel

<?php
for ($i = 1; $i <= 4; $i++) {
    $bytes = openssl_random_pseudo_bytes($i, $cstrong);
    $hex   = bin2hex($bytes);

    echo "Längd: Bytes: $i och Hex: " . strlen($hex) . PHP_EOL;
    var_dump($hex);
    var_dump($cstrong);
    echo PHP_EOL;
}
?>

Utdata kan se ut som följande:

Längd: Bytes: 1 och Hex: 2
string(2) "42"
bool(true)

Längd: Bytes: 2 och Hex: 4
string(4) "dc6e"
bool(true)

Längd: Bytes: 3 och Hex: 6
string(6) "288591"
bool(true)

Längd: Bytes: 4 och Hex: 8
string(8) "ab86d144"
bool(true)

Se även

  • random_bytes() - Generera kryptografiskt säkra slumpmässiga bytes
  • bin2hex() - Konvertera binära data till hexadecimal representation
  • crypt() - Envägskryptering av strängar
  • random_int() - Få ett kryptografiskt säkert slumpmässigt heltal

openssl_pkcs7_read

(PHP 7 >= 7.2.0, PHP 8)

openssl_pkcs7_read — Exporterar PKCS7-filen till en array av PEM-certifikat

Beskrivning

openssl_pkcs7_read(string $data, array &$certificates): bool

Denna funktion analyserar PKCS7-certifikatfilen (p7b-format) och returnerar en array med PEM-kodade certifikat.

Parametrar

  • data — Strängen med data i p7b-format som ska analyseras.
  • certificates — Array som innehåller PEM-certifikat från p7b-inmatningsdata.

Returnerar

Returnerar

true

vid framgång eller

false

vid fel.

Exempel

Exempel #1 Hämta en PEM-array från en P7B-fil

<?php

$file = 'certs.p7b';

$f = file_get_contents($file);
$p7 = array();
$r = openssl_pkcs7_read($f, $p7);

if ($r === false) {
    printf("ERROR: %s är inte en giltig p7b-fil".PHP_EOL, $file);
        for($e = openssl_error_string(), $i = 0; $e; $e = openssl_error_string(), $i++)
            printf("SSL l%d: %s".PHP_EOL, $i, $e);
    exit(1);
}

print_r($p7);
?>

Se även

  • openssl_csr_sign() — Signera en CSR med ett annat certifikat (eller sig själv) och generera ett certifikat

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/function.openssl-random-pseudo-bytes.php PHP Funktioner Funktionsreferens OpenSSL-funktioner


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorreparation Stockholm som har sponsrat Linux.se med webserver.