openssl_open

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

openssl_openОткрыть запечатанные данные

Описание

openssl_open(
    string$data,
    string&$output,
    string$encrypted_key,
    OpenSSLAsymmetricKey|OpenSSLCertificate|array|string$private_key,
    string$cipher_algo,
    ?string$iv = null
): bool

openssl_open() открывает (дешифрует) data, используя секретный ключ, связанный с идентификатором private_key и ключ обёртки encrypted_key, и заполняет output расшифрованными данными. Ключ обёртки создаётся при запечатывании данных и может использоваться только с одним единственным секретным ключом. Более подробно можно прочитать на странице описания функции openssl_seal().

Список параметров

data

output

При удачном завершении, переменная переданная в этом параметре будет содержать открытые данные.

encrypted_key

private_key

cipher_algo

Метод шифрования.

Предостережение

Значение по умолчанию ('RC4') считается небезопасным. Настоятельно рекомендуется явно указывать метод безопасного шифрования.

iv

Инициализирующий вектор.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Список изменений

ВерсияОписание
8.0.0private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509 CSR.
8.0.0cipher_algo больше не является необязательным параметром.

Примеры

Пример #1 Пример использования openssl_open()

<?php
// Предположим, что $sealed и $env_key содержат закрытые данные и
// ключ обёртки соответственно

// Извлекаем секретный ключ из файла
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// расшмфровываем данные и складываем их в $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
echo
"Расшифрованные данные: ", $open;
} else {
echo
"Что-то пошло не так :(";
}

// Высвобождаем ресурс приватнного ключа
openssl_free_key($pkeyid);
?>

Смотрите также

  • openssl_seal() - Запечатать (зашифровать) данные
To Top