phelium / encryptor
A simple PHP encryption and decryption class with OpenSSL
Requires
- php: >=7.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.63
- phpunit/phpunit: ^9.6
README
Encryptor is a simple and effective PHP class for encrypting and decrypting strings using the openssl_encrypt
and openssl_decrypt
methods with HMAC verification for data integrity.
Installation
You can install this library via Composer. Just run the following command in your project:
composer require phelium/encryptor
Usage
Initializing the Class
Start by creating an instance of the Encryptor class and setting an encryption key:
use Phelium\Component\Encryptor; $encryptor = new Encryptor(); $encryptor->setKey('my-super-key');
Encrypting a String
Use the encrypt method to encrypt a string:
$encryptedString = $encryptor->encrypt('my string'); echo $encryptedString;
Decrypting a String
Use the decrypt method to decrypt a previously encrypted string:
$decryptedString = $encryptor->decrypt($encryptedString); echo $decryptedString; // Outputs "my string"
Customizing the Encryption Algorithm
You can also customize the encryption algorithm used by the class:
$encryptor->setCipherAlgorithm('aes-192-cbc');
Algorightms are available on openssl_get_cipher_methods
.
Generating a Secure Key
If you need to generate a secure encryption key, use the following static method:
$secureKey = Encryptor::generateKey(); echo $secureKey;
Testing
This library comes with a PHPUnit test suite. You can run the tests with the following command:
composer test
Code Coverage
You can also generate a code coverage report by running the following command:
composer test:coverage
The coverage report will be generated in the coverage-report directory as HTML files. You can open index.html in a browser to view the report.
Contributing
Contributions are welcome! Feel free to submit issues and pull requests to improve this library.