公開鍵でデータを暗号化する

# openssl_public_encrypt

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

openssl_public_encrypt — 公開鍵でデータを暗号化する

### 説明

function openssl_public_encrypt(
#[\SensitiveParameter]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 パディング用のダイジェストアルゴリズム。 デフォルトのアルゴリズムを使用する場合は `null` を指定します。

### 戻り値

成功した場合に `true` を、失敗した場合に `false` を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.5.0 | オプションのパラメータ `digest_algo` が追加されました。
8.0.0 | `public_key` は、 OpenSSLAsymmetricKey または OpenSSLCertificate クラスのインスタンスを受け入れるようになりました。 これより前のバージョンでは、 `OpenSSL key` または `OpenSSL X.509` 型のリソースを受け入れていました。

### 参考

- openssl_private_encrypt() - 秘密鍵でデータを暗号化する
- openssl_private_decrypt() - 秘密鍵でデータを復号する

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