openssl_public_encrypt

FunctionParams changed in PHP 8.5

Encrypts data with public key.

PHP 5
PHP 7
PHP 8.0
Improved
PHP 8.1-8.2
PHP 8.3
PHP 8.4
PHP 8.5
Improved
PHP 8.6

openssl_public_encrypt Function synopsis

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

Parameters

$data

Typestring

$encrypted_data

Passed by reference

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

OptionalTypeintDefault valueOPENSSL_PKCS1_PADDING

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

$digest_algo

OptionalType?stringDefault valuenull

Note that the parameter $encrypted_data is passed by reference, and contains additional/updated context data that may be useful.

Return value

Typebool

Returns true on success, false on failure

Changes to the openssl_public_encrypt Function

PHP 8.5

  • Optional parameter added - #5: ?string $digest_algo = null
 openssl_public_encrypt(
     string $data,
     &$encrypted_data,
     $public_key,
-    int $padding = OPENSSL_PKCS1_PADDING
+    int $padding = OPENSSL_PKCS1_PADDING,
+    ?string $digest_algo = null
   ): bool

PHP 8.2

PHP 8.0

  • Return type added: bool
  • Parameter type added for parameter #1 ($data): string
  • Parameter name of parameter #2 changed: $crypted to $encrypted_data
  • Parameter name of parameter #3 changed: $key to $public_key
  • Parameter type added for parameter #4 ($padding): int
  • Parameter default value added for position #4 ($padding): OPENSSL_PKCS1_PADDING
  openssl_public_encrypt(
-     $data,
+     string $data,
-     &$crypted,
+     &$encrypted_data,
-     $key,
+     $public_key,
-     $padding
+     int $padding = OPENSSL_PKCS1_PADDING
-   )
+   ): bool

openssl_public_encrypt Function Availability

PHP VersionAvailability
PHP 8.6Future Release Yes
PHP 8.5Upcoming Release Yes
PHP 8.4Supported (Latest) Yes
PHP 8.3Supported Yes
PHP 8.2Security-Fixes Only Yes
PHP 8.1Security-Fixes Only Yes
PHP 8.0Unsupported Yes
PHP 7.4Unsupported Yes
PHP 7.3Unsupported Yes
PHP 7.2Unsupported Yes
PHP 7.1Unsupported Yes
PHP 7.0Unsupported Yes
PHP 5.6Unsupported Yes
PHP 5.5Unsupported Yes
PHP 5.4Unsupported Yes
PHP 5.3Unsupported Yes