openssl_public_encrypt

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

openssl_public_encryptШифрует данные открытым ключом

Описание

openssl_public_encrypt(
    string $data,
    string &$encrypted_data,
    OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
    int $padding = OPENSSL_PKCS1_PADDING,
    ?string $digest_algo = null
): bool

Функция openssl_public_encrypt() шифрует данные data открытым ключом public_key и сохраняет в параметре encrypted_data. Затем данные расшифровывают функцией openssl_private_decrypt().

Функцию вызывают, например, для отправки сообщений, которые получится прочитать только владельцу закрытого ключа. Функцией также шифруют информацию в базе данных.

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

data

encrypted_data

Функция заполнит параметр результатом шифрования.

public_key

В параметр public_key передают открытый ключ, который соответствует закрытому ключу для расшифровки данных.

padding

Параметр padding принимает константу из следующего списка: OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

digest_algo
Алгоритм хеширования для схемы дополнения OAEP (англ. Optimal Asymmetric Encryption Padding — оптимальное асимметричное шифрование с дополнением). При передаче значения null функция выбирает алгоритм по умолчанию.

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

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

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

Версия Описание
8.5.0 Добавили необязательный параметр digest_algo.
8.0.0 Параметр public_key теперь принимает экземпляр класса OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.

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