https://github.com/ivantcholakov/gibberish-aes-php
A PHP port of Gibberish AES javascript encryption library, https://github.com/mdp/gibberish-aes
https://github.com/ivantcholakov/gibberish-aes-php
php
Last synced: 7 months ago
JSON representation
A PHP port of Gibberish AES javascript encryption library, https://github.com/mdp/gibberish-aes
- Host: GitHub
- URL: https://github.com/ivantcholakov/gibberish-aes-php
- Owner: ivantcholakov
- License: mit
- Created: 2012-03-26T23:45:06.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2021-02-26T23:23:30.000Z (over 5 years ago)
- Last Synced: 2025-04-15T00:54:31.877Z (about 1 year ago)
- Topics: php
- Language: PHP
- Homepage:
- Size: 58.6 KB
- Stars: 82
- Watchers: 10
- Forks: 40
- Open Issues: 0
-
Metadata Files:
- Readme: README.markdown
- License: LICENSE.txt
Awesome Lists containing this project
README
Gibberish AES, a PHP Implementation
===================================
See Gibberish AES javascript encryption library, [https://github.com/mdp/gibberish-aes](https://github.com/mdp/gibberish-aes)
An important note: The complementary JavaScript project Gibberish AES has been
deprecated, see https://github.com/mdp/gibberish-aes/issues/25
Consider finding alternative PHP and JavaScript solutions.
This class is based on initial code proposed by nbari at dalmp dot com
[http://www.php.net/manual/en/function.openssl-decrypt.php#107210](http://www.php.net/manual/en/function.openssl-decrypt.php#107210)
Live Demo
---------
http://iridadesign.com/starter-public-edition-4/www/playground/gibberish-aes
Requirements:
-----------------------------------
- OpenSSL functions installed and PHP version >= 5.3.3
or
- Mcrypt functions installed and PHP version < 7.1.0-alpha
For PHP under version 7 it is recommendable you to install within your project
"PHP 5.x support for random_bytes() and random_int()",
https://github.com/paragonie/random_compat
Usage Example:
-----------------------------------
```php
echo '
';
// This is a secret pass-phrase, keep it in a safe place and don't loose it.
$pass = 'my secret pass-phrase, it should be long';
echo '$pass = '.$pass;
echo '
';
// The string to be encrypted.
$string = 'my secret message';
echo '$string = '.$string;
echo '
';
echo '
';
// The default key size is 256 bits.
$old_key_size = GibberishAES::size();
echo 'Encryption and decryption using a 256-bit key:';
echo '
';
GibberishAES::size(256);
// This is the result after encryption of the given string.
$encrypted_string = GibberishAES::enc($string, $pass);
// This is the result after decryption of the previously encrypted string.
// $decrypted_string == $string (should be).
$decrypted_string = GibberishAES::dec($encrypted_string, $pass);
echo '$encrypted_string = '.$encrypted_string;
echo '
';
echo '$decrypted_string = '.$decrypted_string;
echo '
';
echo '
';
echo 'Encryption and decryption using a 192-bit key:';
echo '
';
GibberishAES::size(192);
$encrypted_string = GibberishAES::enc($string, $pass);
$decrypted_string = GibberishAES::dec($encrypted_string, $pass);
echo '$encrypted_string = '.$encrypted_string;
echo '
';
echo '$decrypted_string = '.$decrypted_string;
echo '
';
echo '
';
echo 'Encryption and decryption using a 128-bit key:';
echo '
';
GibberishAES::size(128);
$encrypted_string = GibberishAES::enc($string, $pass);
$decrypted_string = GibberishAES::dec($encrypted_string, $pass);
echo '$encrypted_string = '.$encrypted_string;
echo '
';
echo '$decrypted_string = '.$decrypted_string;
echo '
';
echo '
';
// Restore the old key size.
GibberishAES::size($old_key_size);
```
Author: Ivan Tcholakov, 2012-2021.
License: The MIT License (MIT), [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)
A fragment of code is under the New BSD License, George Argyros, 2012.