adbario / php-encrypter
Encryption with AES-256 and HMAC-SHA256
Installs: 6 752
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 3
Forks: 4
Open Issues: 0
Requires
- php: >=5.3
- ext-mbstring: *
- ext-openssl: *
- paragonie/random_compat: ^2.0
This package is auto-updated.
Last update: 2024-11-11 14:26:00 UTC
README
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.
Security Notice
As a reversible operation, encryption is not a secure solution for storing passwords. Always use hashing with salt per user for passwords.
Installation
With Composer:
composer require adbario/php-encrypter
Manual installation:
- 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
Usage
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);
Encryption
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);
Decryption
Decrypt a string:
$string = $encrypter->decryptString($encrypted);
Decrypt other variable types with serialization:
$array = $encrypter->decrypt($encrypted);