openssl_public_encrypt

Encrypts data with public key

Description

bool openssl_public_encrypt(
    #[\SensitiveParameter]string $data,
    string &$encrypted_data,
    OpenSSLAsymmetricKeyOpenSSLCertificatearraystring $public_key,
    int $padding = OPENSSL_PKCS1_PADDING
)

openssl_public_encrypt encrypts data with public public_key and stores the result into encrypted_data. Encrypted data can be decrypted via openssl_private_decrypt.

This function can be used e.g. to encrypt message which can be then read only by owner of the private key. It can be also used to store secure data in database.

Parameters

data

encrypted_data

This will hold the result of the encryption.

public_key

public_key must be the public key that corresponds to the private key that will be used to decrypt the data.

padding

padding can be one of OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Return Values

Returns true on success or false on failure.

Changelog

Version Description
8.0.0 public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.

See Also

  • openssl_private_encrypt
  • openssl_private_decrypt