Class OpenSsl
OpenSSL implementation of crypto features for Cake\Utility\Security
OpenSSL should be favored over mcrypt as it is actively maintained and more widely available.
This class is not intended to be used directly and should only be used in the context of Cake\Utility\Security.
Constants
-
string
METHOD_AES_256_CBC ¶'aes-256-cbc'
Method Summary
-
decrypt() public static
Decrypt a value using AES-256.
-
encrypt() public static
Encrypt a value using AES-256.
-
rijndael() public static
Not implemented
Method Detail
decrypt() ¶ public static
decrypt(string $cipher, string $key): string
Decrypt a value using AES-256.
Parameters
-
string
$cipher The ciphertext to decrypt.
-
string
$key The 256 bit/32 byte key to use as a cipher key.
Returns
string
Throws
InvalidArgumentException
On invalid data or key.
encrypt() ¶ public static
encrypt(string $plain, string $key): string
Encrypt a value using AES-256.
Caveat You cannot properly encrypt/decrypt data with trailing null bytes. Any trailing null bytes will be removed on decryption due to how PHP pads messages with nulls prior to encryption.
Parameters
-
string
$plain The value to encrypt.
-
string
$key The 256 bit/32 byte key to use as a cipher key.
Returns
string
Throws
InvalidArgumentException
On invalid data or key.
rijndael() ¶ public static
rijndael(string $text, string $key, string $operation): void
Not implemented
Parameters
-
string
$text Encrypted string to decrypt, normal string to encrypt
-
string
$key Key to use as the encryption key for encrypted data.
-
string
$operation Operation to perform, encrypt or decrypt
Returns
void
Throws
LogicException
Rijndael compatibility does not exist with Openssl.