openssl seal()
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.
- 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.
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
- openssl_open() - Öppnar förseglad data
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.