A library to encrypt or decrypt with random password generator based on secret key defined.
This is the library for encrypting data with a key (password will be generate as per your parameters set) in PHP.
WHY ANOTHER LIBRARY? This was intended to developed for cross-platform AES Encryption here as PHP was missing. My main objective is to create library for
AES-256-CBC to contribute PHP package for Cross-Platform-AES package, more features will be added whenever I gets time.
- Support for Random IV (initialization vector) for encryption and decryption. Randomization is crucial for encryption schemes to achieve semantic security, a property whereby repeated usage of the scheme under the same key does not allow an attacker to infer relationships between segments of the encrypted message.
- Support for SHA-256 for hashing the key. Never use plain text as encryption key. Always hash the plain text key and then use for encryption. AES permits the use of 256-bit keys. Breaking a symmetric 256-bit key by brute force requires 2^128 times more computational power than a 128-bit key. A device that could check a billion billion (10^18) AES keys per second would in theory require about 3×10^51 years to exhaust the 256-bit key space.
- PHP-7 Support since
mcrypthas been deprecated.
You can install the package via composer:
composer require ahsankhatri/cryptolib-php
The bindings require the following extensions in order to work properly:
If you use Composer, these dependencies should be handled automatically. If you install manually, you'll want to make sure that these extensions are available.
$string = 'The quick brown fox jumps over to the lazy dog.'; $secretyKey = 'BlVssQKxzAHFAUNZbqvwS+yKw/m'; $encryption = new \MrShan0\CryptoLib\CryptoLib(); $cipher = $encryption->encryptPlainTextWithRandomIV($string, $secretyKey); echo 'Cipher: ' . $cipher . PHP_EOL; $plainText = $encryption->decryptCipherTextWithRandomIV($cipher, $secretyKey); echo 'Decrypted: ' . $plainText . PHP_EOL;
$string = 'The quick brown fox jumps over to the lazy dog.'; $secretyKey = 'BlVssQKxzAHFAUNZbqvwS+yKw/m'; $encryption = new \MrShan0\CryptoLib\CryptoLib(); $iv = $encryption->generateRandomIV(); $cipher = $encryption->encrypt($string, $secretyKey, $iv); echo 'Cipher: ' . $cipher . PHP_EOL; $plainText = $encryption->decrypt($cipher, $secretyKey, $iv); echo 'Decrypted: ' . $plainText . PHP_EOL;
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email firstname.lastname@example.org instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.