Файл: sys/inc/shif.php
Строк: 62
<?php
function shif($str)
{
global $set;
$key = $set['shif'];
$str1 = md5((string )$str);
$str2 = md5($key);
return md5($key . $str1 . $str2 . $key);
}
function cookie_encrypt($str, $id = 0)
{
if (function_exists('mcrypt_module_open')) {
$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
if (!is_file(H . 'sys/dat/shif.conf')) {
if (version_compare(phpversion(), '5.3.10', '<')) {
$iv = base64_encode(mcrypt_create_iv(mcrypt_enc_get_iv_size($td),
MCRYPT_RAND));
} else {
$iv = base64_encode(mcrypt_create_iv(mcrypt_enc_get_iv_size($td),
MCRYPT_DEV_RANDOM));
}
file_put_contents(H . 'sys/dat/shif.conf', $iv);
if (is_file(H . 'sys/dat/shif_iv.dat')) {
chmod(H . 'sys/dat/shif_iv.dat', 0777);
}
} else {
$iv = file_get_contents(H . 'sys/dat/shif.conf');
}
$ks = mcrypt_enc_get_key_size($td);
/* Создать ключ */
$key = substr(md5($id . $_SERVER['HTTP_USER_AGENT']), 0, $ks);
mcrypt_generic_init($td, $key, base64_decode($iv));
$str = mcrypt_generic($td, $str);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
}
$str = base64_encode($str);
return $str;
}
function cookie_decrypt($str, $id = 0)
{
$str = base64_decode($str);
if (function_exists('mcrypt_module_open')) {
$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
if (!is_file(H . 'sys/dat/shif.conf') || !$iv = file_get_contents(H . 'sys/dat/shif.conf')) {
if (version_compare(phpversion(), '5.3.10', '<')) {
$iv = base64_encode(mcrypt_create_iv(mcrypt_enc_get_iv_size($td),
MCRYPT_RAND));
} else {
$iv = base64_encode(mcrypt_create_iv(mcrypt_enc_get_iv_size($td),
MCRYPT_DEV_RANDOM));
}
file_put_contents(H . 'sys/dat/shif.conf', $iv);
chmod(H . 'sys/dat/shif.conf', 0777);
}
$ks = mcrypt_enc_get_key_size($td);
/* Создать ключ */
$key = substr(md5($id . $_SERVER['HTTP_USER_AGENT']), 0, $ks);
mcrypt_generic_init($td, $key, base64_decode($iv));
$str = mdecrypt_generic($td, $str);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
}
return $str;
}