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

# openssl_public_encrypt

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

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

### Описание

function 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`.

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

- openssl_private_encrypt() - Шифрует данные секретным ключом
- openssl_private_decrypt() - Расшифровывает данные закрытым ключом

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open