返回顶部

收藏

COOKIE加密函数

更多

示例用法:$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;

取自www.54dev.com

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;
}

}

标签:COOKIE,加密,PHP

收藏

0人收藏

支持

0

反对

0

发表评论