openssl_decrypt
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Decrypts data
Description
Takes a raw or base64 encoded string and decrypts it using a given method and passphrase.
Parameters
dataThe encrypted message to be decrypted.
cipher_algoThe cipher method. For a list of available cipher methods, use
openssl_get_cipher_methods().passphraseThe passphrase. If the passphrase is shorter than expected, it is silently padded with
NULcharacters; if the passphrase is longer than expected, it is silently truncated.CautionThere is no key derivation function used for
passphraseas its name might suggest. The only operation used is padding withNULcharacters or truncation if the length is different than expected.optionsoptionsis a bitwise disjunction of the flagsOPENSSL_RAW_DATA,OPENSSL_ZERO_PADDING, andOPENSSL_DONT_ZERO_PAD_KEY.When
OPENSSL_RAW_DATAis set,datais expected to be raw binary ciphertext. When it is not set,datais expected to be base64-encoded.ivA non-null Initialization Vector. If the IV is shorter than expected, it is padded with
NULcharacters and warning is emitted; if the passphrase is longer than expected, it is truncated and warning is emitted.tagThe authentication tag in AEAD cipher mode. If it is incorrect, the authentication fails and the function returns false.
CautionThe length of the
tagis not checked by the function. It is the caller's responsibility to ensure that the length of the tag matches the length of the tag retrieved whenopenssl_encrypt()has been called. Otherwise the decryption may succeed if the given tag only matches the start of the proper tag.aadAdditional authenticated data.
Return Values
The decrypted string on successFalseforfailure.
Errors/Exceptions
Emits an E_WARNING level error if an unknown cipher algorithm is passed via the cipher_algo parameter.
Emits an E_WARNING level error if an empty value is passed in via the iv parameter.
Changelog
| Version | Description |
|---|---|
| 8.1.0 | tag is now nullable. |
| 7.1.0 | The tag and aad parameters were added. |