Encryption with AES-256 and HMAC-SHA256
This project encrypts and decrypts the given value. It uses OpenSSL extension with AES-256 cipher for encryption and HMAC-SHA-256 for hash. The encryption and hash can use different keys.
PHP Encrypter requires PHP 5.3 or higher, OpenSSL and Multibyte String extensions.
As a reversible operation, encryption is not a secure solution for storing passwords. Always use hashing with salt per user for passwords.
composer require adbario/php-encrypter
- Download the latest release
- Extract the files into your project
- require_once '/path/to/php-encrypter/src/Encrypter.php';
- If your PHP version is lower than 7, also polyfill for random_bytes() is required
Setup the encryption key:
$key = '+NeXrQhAEhW}g8gf^y)Up8hAUKpue7wb';
Change the key to your own custom random 32 character string.
Create a new encrypter instance:
$encrypter = new \Adbar\Encrypter($key);
If you wish to use a different key for hashing, you can pass it to constructor as a second parameter:
$encrypter = new \Adbar\Encrypter($key, $authKey);
Encrypt a string:
$string = 'This is my string to encrypt.'; $encrypted = $encrypter->encryptString($string);
Encrypt other variable types with serialization:
$array = array('key' => 'value'); $encrypted = $encrypter->encrypt($array);
Decrypt a string:
$string = $encrypter->decryptString($encrypted);
Decrypt other variable types with serialization:
$array = $encrypter->decrypt($encrypted);