37 lines
No EOL
972 B
PHP
Executable file
37 lines
No EOL
972 B
PHP
Executable file
<?php
|
|
|
|
use ParagonIE\Halite\File;
|
|
use ParagonIE\Halite\KeyFactory;
|
|
use ParagonIE\Halite\Symmetric\Crypto as Symmetric;
|
|
use ParagonIE\HiddenString\HiddenString;
|
|
|
|
set_time_limit(300);
|
|
|
|
function endecrypt($string, $encrypt = true, $file = false) {
|
|
global $dir_files, $site_url;
|
|
|
|
if(!file_exists($dir_files.'/'.hash('sha256', $site_url).'.key')) {
|
|
$enckey = KeyFactory::generateEncryptionKey();
|
|
KeyFactory::save($enckey, $dir_files.'/'.hash('sha256', $site_url).'.key');
|
|
|
|
} else {
|
|
$enckey = KeyFactory::loadEncryptionKey($dir_files.'/'.hash('sha256', $site_url).'.key');
|
|
|
|
if($file == false) {
|
|
if($encrypt == true) {
|
|
return Symmetric::encrypt(new HiddenString($string), $enckey);
|
|
} else {
|
|
return Symmetric::decrypt($string, $enckey)->getString();
|
|
}
|
|
|
|
} else {
|
|
if($encrypt == true) {
|
|
File::encrypt($string, $string.'.enc', $enckey);
|
|
} else {
|
|
File::decrypt($string.'.enc', $string, $enckey);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|