openssl open()

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

openssl_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_open — Öppnar förseglad data

Beskrivning

openssl_open(
    string '''$data''',
    #[\SensitiveParameter] string &'''$output''',
    string '''$encrypted_key''',
    #[\SensitiveParameter] OpenSSLAsymmetricKey|OpenSSLCertificate|array|string '''$private_key''',
    string '''$cipher_algo''',
    ?string '''$iv''' = null
): bool

Funktionen openssl_open() öppnar (dekrypterar) data med en omslagsnyckel som dekrypteras från $encrypted_key med hjälp av $private_key. Dekrypteringen görs med hjälp av $cipher_algo och $iv. Om krypteringsmetoden kräver en IV används den här parametern. Funktionen fyller $output med den dekrypterade datan. Omslagsnyckeln skapas vanligtvis när datan förseglas med en publik nyckel som är kopplad till den privata nyckeln. Se openssl_seal() för mer information.

Parametrar

  • data — Den förseglade datan.
  • output — Om anropet lyckas returneras den öppnade datan i denna parameter.
  • encrypted_key — Den krypterade symmetriska nyckeln som kan dekrypteras med hjälp av $private_key.
  • private_key — Den privata nyckeln som används för att dekryptera $encrypted_key.
  • cipher_algo — Krypteringsmetoden som används för dekryptering av data.
Standardvärdet för PHP-versioner före 8.0 är "RC4" som anses osäkert. Det rekommenderas starkt att explicit specificera en säker krypteringsmetod.
  • iv — Initieringsvektorn som används för dekryptering av data. Krävs om krypteringsmetoden kräver IV. Detta kan kontrolleras genom att anropa openssl_cipher_iv_length() med $cipher_algo.

Returnerar

Returnerar true vid framgång eller false vid fel.

Ändringslogg

Version Beskrivning
8.0.0 private_key accepterar nu en OpenSSLAsymmetricKey eller OpenSSLCertificate-instans; tidigare accepterades en resurs av typen OpenSSL-nyckel eller OpenSSL X.509 CSR.
8.0.0 cipher_algo är inte längre en valfri parameter.

Exempel

Exempel #1 openssl_open()-exempel

<?php

// $sealed, $env_key och $iv antas innehålla den förseglade datan, omslagsnyckeln och IV. Allt ges till oss av den som förseglat datan.

// Hämta privat nyckel från filen private_key.pem
$pkey = openssl_get_privatekey("file://private_key.pem");

// Dekryptera datan och lagra det i $open
if (openssl_open($sealed, $open, $env_key, $pkey, 'AES256', $iv)) {
    echo "Här är den öppnade datan: ", $open;
} else {
    echo "Misslyckades att öppna data";
}

?>

Se även

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/function.mhash-keygen-s2k.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 Datorhjälp som har sponsrat Linux.se med webserver.