## 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. #### String Encryption ```php $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"; ``` #### File Encryption ```php setEncryptionBlocks(128); // This will take ~10 times more time, but will use half as much memory. // Really the best value is the default one. $enc_start = round(microtime(true) * 1000); // Encrypt the file $lib->encryptFile(INPUT_FILE, OUTPUT_FILE); $enc_end = round(microtime(true) * 1000) - $enc_start; $dec_start = round(microtime(true) * 1000); // Decrypt the file as well $lib->decryptFile(OUTPUT_FILE, DEC_OUTPUT_FILE); $dec_end = round(microtime(true) * 1000) - $dec_start; /** * NOTE: You can also compress the output using gzip */ echo "\n\n"; echo "Input File Size: " . round(filesize(INPUT_FILE) / 1024 / 1024, 2) . "Mb"; echo "\n"; echo "Output File Size: " . round(filesize(OUTPUT_FILE) / 1024 / 1024, 2) . "Mb"; echo "\n"; echo "Peak Memory: " . memory_get_peak_usage() / 1024 / 1024 . "Mb"; // Check the memory in Mb echo "\n"; echo "Encryption Time: $enc_end ms\n"; // 9700k = ~210ms ( 4Mb = 100ms ) echo "Decryption Time: $dec_end ms\n"; echo "\n"; $errors = $lib->getErrors(); echo "Errors: " . ( !empty($errors) ? "\n" . json_encode($errors, JSON_PRETTY_PRINT) : "No Errors!"); ``` ## License The licensing of the project is the [MIT license](https://mit-license.org/) #### Credit Repository icon made by [monkik](https://www.flaticon.com/authors/monkik) from [www.flaticon.com](https://www.flaticon.com/);