openssl seal()

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

openssl_seal

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

openssl_seal — Förseglar (krypterar) data

Beskrivning

openssl_seal(
    #[\SensitiveParameter] string '''$data''',
    string &'''$sealed_data''',
    array &'''$encrypted_keys''',
    array '''$public_key''',
    string '''$cipher_algo''',
    string &'''$iv''' = null
): int|false

Funktionen openssl_seal() förseglar (krypterar) data med hjälp av den specificerade krypteringsalgoritmen $cipher_algo och en slumpmässigt genererad hemlig nyckel. Nyckeln krypteras sedan med varje publik nyckel i arrayen $public_key, och varje krypterad omslagsnyckel returneras i $encrypted_keys. Detta gör det möjligt att skicka förseglad data till flera mottagare (förutsatt att deras publika nycklar är tillgängliga). Varje mottagare måste få både den förseglade datan och omslagsnyckeln som krypterades med mottagarens publika nyckel. IV (Initialiseringsvektor) genereras och dess värde returneras i $iv.

Parametrar

  • data — Datan som ska förseglas.
  • sealed_data — Den förseglade datan.
  • encrypted_keys — Array med krypterade nycklar.
  • public_key — Array med instanser av OpenSSLAsymmetricKey som innehåller publika nycklar.
  • cipher_algo — Krypteringsmetoden.
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 — Initieringsvektor 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.
IV kan inte sättas explicit. Alla värden som anges här skrivs över med ett slumpmässigt genererat värde.

Returnerar

Returnerar längden på den förseglade datan vid framgång, eller false vid fel. Vid framgång returneras den förseglade datan i $sealed_data och omslagsnycklarna i $encrypted_keys.

Ändringslogg

Version Beskrivning
8.0.0 public_key accepterar nu en array med instanser av OpenSSLAsymmetricKey; tidigare accepterades en array med resurser av typen OpenSSL-nyckel.
8.0.0 cipher_algo är inte längre en valfri parameter.
8.0.0 iv är nu nullable.

Exempel

Exempel #1 openssl_seal()-exempel

<?php
// $data antas innehålla datan som ska förseglas
$data = "test";

// hämta publika nycklar
$pk1 = openssl_get_publickey("file://cert1.pem");
$pk2 = openssl_get_publickey("file://cert2.pem");

// försegla meddelande, endast ägare av $pk1 och $pk2 kan dekryptera $sealed
// med nycklar $ekeys[0] respektive $ekeys[1].
if (openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2), 'AES256', $iv) > 0) {
    // eventuellt lagra värdena $sealed och $iv och använd senare i openssl_open
    echo "framgång\n";
}
?>

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.