龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php COOKIE加密函数

时间:2014-10-04 02:12来源:网络整理 作者:网络 点击:
分享到:
COOKIE加密函数 示例用法:$eC = new encodeCookie; $e = $eC-gt;encodeC ( md5 (#39;password#39;) );$d = $eC-gt;decodeC ( $e ); echo quot;Original Cookie value : quot;.$d;echo quot;lt;brgt;lt;brgt;quot;;echo quot;Encoded Cookie value :

示例用法:

$eC = new encodeCookie;

$e = $eC->encodeC ( md5 ('password') );

$d = $eC->decodeC ( $e );

echo "Original Cookie value : ".$d;

echo "<br><br>";

echo "Encoded Cookie value : ".$e;

define ("DOMAIN", "54dev.com");
define ("PATH", "/");
define ("COOKIEID", "encodeCookie");
define ("COOKIEKEY", "raz"); // max 5 chars is good

/**
* class encodeCookie
*
* encode cookies before you send them
*
*/
class encodeCookie {
/**
* encodeCookie::$config
*
* configuration
*
*/
    var $config;

/**
* encodeCookie::encodeCookie()
*
* constructor
*
*/
function encodeCookie () {
    $this->config = array ();
    $this->config['cookie_key'] = COOKIEKEY;
    $this->config['cookie'] = array (
                'cookie_id'             =>   COOKIEID,
                'cookie_path'           =>   PATH,
                'cookie_domain'         =>   DOMAIN,
    );
}

/**
* encodeCookie::set_Cookie()
*
* sets the cookie
*
* @param string $value
* @param integer $sticky
*/
function set_Cookie ($name, $value = "", $sticky = 0) {

    $exipres = "";

    if ($sticky == 1) {
        $expires = time() + 60*60*24*365;
    }

    $name = $this->config['cookie']['cookie_id'].$name;
    $newValue = $this->encodeC ($value);

    @setcookie($name, urlencode($newValue), $expires, $this->config['cookie']['cookie_path'], $this->config['cookie']['cookie_domain']);
}

/**
* encodeCookie::get_Cookie()
*
* gets the cookie
*
*/
function get_Cookie ($name) {

    if ( isset( $_COOKIE[$this->config['cookie']['cookie_id'].$name] ) ) {
        $cookie = urldecode ( $_COOKIE[$this->config['cookie']['cookie_id'].$name] );
        return $this->decodeC ($cookie);
    } else {
        return FALSE;
    }

}

/**
* encodeCookie::encodeC()
*
* encodes the cookie
*
*/
function encodeC ($cookie) {

    $newcookie = array ();
    $cookie = base64_encode ($cookie);

    for ( $i=0; $i<=strlen ($cookie); $i++ ) {
        $newcookie[ $i ] = ord ( $cookie[ $i ] ) * $this->encodeKey ();
    }

    $newcookie = implode ('.', $newcookie);

return $newcookie;
}

/**
* encodeCookie::decodeC()
*
* decodes the cookie
*
*/
function decodeC ($oldcookie) {

    $newcookie = array ();
    $cookie = explode ('.', $oldcookie);

    for ( $i=0; $i<=strlen ($oldcookie); $i++ ) {
        $newcookie[ $i ] = chr ( $cookie[ $i ] / $this->encodeKey () );
    }

    $newcookie = implode ('', $newcookie);
    $newcookie = base64_decode ($newcookie);

return $newcookie;
}

/**
* encodeCookie::encodeKey()
*
* encodes the key
*
*/
function encodeKey () {
    $newkey = 0;
    for ( $i=0; $i<=strlen ( $this->config['cookie_key'] ); $i++ ) {
        $newkey += ord ( $this->config['cookie_key'][ $i ] );
    }
return $newkey;
}

}
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接