2 function setEncryptCookie($key, $value, $time = 0, $path = '/') {
\r
3 if (trim(SECURE_KEY) == '') {
\r
4 setcookie($key, $value, $time, $path);
\r
6 setcookie($key, encrypt($value), $time, $path);
\r
10 function getEncryptCookie($key) {
\r
11 if ( isset($_COOKIE[$key]) ) {
\r
12 if (trim(SECURE_KEY) == '') {
\r
13 return $_COOKIE[$key];
\r
15 return decrypt($_COOKIE[$key]);
\r
22 function getCookie($key) {
\r
23 if ( isset($_COOKIE[$key]) )
\r
24 return $_COOKIE[$key];
\r
29 function delCookie($key) {
\r
30 setcookie($key, '', $_SERVER['REQUEST_TIME']-300, '/');
\r
33 function encrypt($plain_text) {
\r
34 if ( !function_exists('mcrypt_module_open') ) {
\r
35 return EDencrypt($plain_text, SECURE_KEY);
\r
37 $td = mcrypt_module_open('blowfish', '', 'cfb', '');
\r
38 $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
\r
39 mcrypt_generic_init($td, SECURE_KEY, $iv);
\r
40 $crypt_text = mcrypt_generic($td, $plain_text);
\r
41 mcrypt_generic_deinit($td);
\r
42 return base64_encode($iv.$crypt_text);
\r
45 function decrypt($crypt_text) {
\r
46 if ( !function_exists('mcrypt_module_open') ) {
\r
47 return EDdecrypt($plain_text, SECURE_KEY);
\r
49 $crypt_text = base64_decode($crypt_text);
\r
50 $td = mcrypt_module_open('blowfish', '', 'cfb', '');
\r
51 $ivsize = mcrypt_enc_get_iv_size($td);
\r
52 $iv = substr($crypt_text, 0, $ivsize);
\r
53 $crypt_text = substr($crypt_text, $ivsize);
\r
54 mcrypt_generic_init($td, SECURE_KEY, $iv);
\r
55 $plain_text = mdecrypt_generic($td, $crypt_text);
\r
56 mcrypt_generic_deinit($td);
\r
61 if ( !function_exists('mb_strlen') ) {
\r
62 function mb_strlen($text, $encode) {
\r
63 if (strtolower($encode) == 'utf-8') {
\r
64 return preg_match_all('%(?:
\r
65 [\x09\x0A\x0D\x20-\x7E] # ASCII
\r
66 | [\xC2-\xDF][\x80-\xBF]# non-overlong 2-byte
\r
67 | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
\r
68 | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
\r
69 | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
\r
70 | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
\r
71 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
\r
72 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
\r
75 return strlen($text);
\r
80 function keyED($txt,$encrypt_key) {
\r
82 $encrypt_key = md5($encrypt_key);
\r
86 for ($i=0;$i<strlen($txt);$i++) {
\r
87 if ($ctr==strlen($encrypt_key)) $ctr=0;
\r
88 $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
\r
95 function EDencrypt($txt,$key) {
\r
97 srand((double)microtime()*1000000);
\r
98 $encrypt_key = md5(rand(0,32000));
\r
102 for ($i=0;$i<strlen($txt);$i++) {
\r
103 if ($ctr==strlen($encrypt_key)) $ctr=0;
\r
104 $tmp.= substr($encrypt_key,$ctr,1) . (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
\r
108 return keyED($tmp,$key);
\r
111 function EDdecrypt($txt,$key) {
\r
113 $txt = keyED($txt,$key);
\r
116 for ($i=0;$i<strlen($txt);$i++) {
\r
117 $md5 = substr($txt,$i,1);
\r
119 $tmp.= (substr($txt,$i,1) ^ $md5);
\r