function cce($plain_string)
{
$key = 'MyRandomStringThatWillAlwaysBeTheSame';
$algorithm = "rijndael_128";
$mode = "ecb";
$iv = false;
if(extension_loaded('mcrypt') === FALSE)
{
$prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
dl($prefix . 'mcrypt.' . PHP_SHLIB_SUFFIX) or die('The Mcrypt module could not be loaded.');
}
$td = mcrypt_module_open($algorithm, '', $mode, '') ;
$random_seed = strstr(PHP_OS, "WIN") ? MCRYPT_RAND : MCRYPT_DEV_RANDOM;
$iv = ($iv === false) ? mcrypt_create_iv(mcrypt_enc_get_iv_size($td), $random_seed) : substr($iv, 0, mcrypt_enc_get_iv_size($td));
$expected_key_size = mcrypt_enc_get_key_size($td);
$key = substr(md5($key), 0, $expected_key_size);
mcrypt_generic_init($td, $key, $iv);
return base64_encode(mcrypt_generic($td, $plain_string));
}
function ccd($encrypted_string)
{
$key = 'MyRandomStringThatWillAlwaysBeTheSame';
$algorithm = "rijndael_128";
$mode = "ecb";
$iv = false;
if(extension_loaded('mcrypt') === FALSE)
{
$prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
dl($prefix . 'mcrypt.' . PHP_SHLIB_SUFFIX) or die('The Mcrypt module could not be loaded.');
}
$td = mcrypt_module_open($algorithm, '', $mode, '') ;
$random_seed = strstr(PHP_OS, "WIN") ? MCRYPT_RAND : MCRYPT_DEV_RANDOM;
$iv = ($iv === false) ? mcrypt_create_iv(mcrypt_enc_get_iv_size($td), $random_seed) : substr($iv, 0, mcrypt_enc_get_iv_size($td));
$expected_key_size = mcrypt_enc_get_key_size($td);
$key = substr(md5($key), 0, $expected_key_size);
mcrypt_generic_init($td, $key, $iv);
return trim(mdecrypt_generic($td, base64_decode($encrypted_string)));
}
Those functions are called through
<?php
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
include "lib/mencrypt.lib.php";
$cc = "1111222233334444";
echo $cc."<br>encrypted - ";
$e = cce($cc);
echo $e."<br>decrypted - ";
$x = ccd($e);
echo $x."<br>";
$mtime = explode(' ', microtime());
$totaltime = $mtime[0] + $mtime[1] - $starttime;
printf('Page loaded in %.3f seconds.', $totaltime);
?>
Is there a better way to do this?