58 lines
1.9 KiB
Markdown
58 lines
1.9 KiB
Markdown
## About
|
|
|
|
The Project is a simple php encryption wrapper, not even a library, the whole point is that it has integrity checks on the encryption part which helps out quite a bit with errors.
|
|
|
|
|
|
## Usage
|
|
Simply use the provided functions from the lib.php file, you can simply import it into any project using that file.
|
|
|
|
```php
|
|
<?php
|
|
require_once("./lib.php");
|
|
@require_once("./config.inc.php");
|
|
|
|
// Check if the config succesfully loaded, or if the mandatory config fields are missing.
|
|
if ( empty($config) || empty($config['key']) || empty($config['input']) ) {
|
|
echo "Please copy the config.sample.inc.php to config.inc.php and change the configuration to match your needs.";
|
|
exit(1);
|
|
}
|
|
|
|
// The memory limit has been set so that we can pass it big strings and test how much it can/will use.
|
|
ini_set('memory_limit','1G');
|
|
|
|
function limitStringSize($str, $amount = 20) {
|
|
if (strlen($str) > $amount)
|
|
$str = substr($str, 0, $amount) . '...';
|
|
return $str;
|
|
}
|
|
|
|
$kpc = new kpcrypt($config['key']);
|
|
|
|
echo "Key: " . $kpc->getKey() . " \n";
|
|
|
|
// Echo out the results
|
|
$encryptedData = $kpc->encryptData($config['input'], 'AES-256-CBC', TRUE);
|
|
|
|
echo "Encrypted: " . limitStringSize($encryptedData);
|
|
echo "\n";
|
|
echo "Decrypted: " . limitStringSize($kpc->decryptData($encryptedData));
|
|
echo "\n";
|
|
echo "Peak Memory: " . memory_get_peak_usage() / 1024 / 1024 . "Mb"; // Check the memory in kb
|
|
echo "\n\n";
|
|
|
|
// Calculate the string size increse
|
|
$inputSize = strlen($config['input']); // Bytes
|
|
$outputSize = strlen($encryptedData); // Bytes
|
|
|
|
// Echo out sizing information
|
|
echo "Sizeof input: " . strlen($config['input']) . "\n"; // Bytes
|
|
echo "Sizeof output:" . strlen($encryptedData) . "\n"; // Bytes
|
|
|
|
echo "\n";
|
|
```
|
|
|
|
## License
|
|
The licensing of the project is the [MIT license](https://mit-license.org/)
|
|
|
|
#### Credit
|
|
Icons made by [monkik](https://www.flaticon.com/authors/monkik) from [www.flaticon.com](https://www.flaticon.com/); |