pues yo tengo algo mas o menos asi, es una clase que maneja una cookie
<!--php1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>PHP </td></tr><tr><td id='CODE'><!--ephp1--><code>[color= #000000]
[color= #0000BB]<?php
define [/color][color= #007700]([/color][color= #DD0000]"DOMINIO"[/color][color= #007700], [/color][color= #DD0000]"vaio"[/color][color= #007700]);
[/color][color= #0000BB]define [/color][color= #007700]([/color][color= #DD0000]"PATH"[/color][color= #007700], [/color][color= #DD0000]""[/color][color= #007700]);
[/color][color= #0000BB]define [/color][color= #007700]([/color][color= #DD0000]"COOKIEID"[/color][color= #007700], [/color][color= #DD0000]""[/color][color= #007700]);
[/color][color= #0000BB]define [/color][color= #007700]([/color][color= #DD0000]"COOKIEKEY"[/color][color= #007700], [/color][color= #0000BB]$glob_Errores[/color][color= #007700]);
class [/color][color= #0000BB]CookieCodificada
[/color][color= #007700]{
var [/color][color= #0000BB]$config[/color][color= #007700];
function [/color][color= #0000BB]CookieCodificada [/color][color= #007700]()
{
[/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]config [/color][color= #007700]= array ();
[/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]config[/color][color= #007700][&[/color][color= #FF8000]#39;cookie_key'] = COOKIEKEY;
[/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]config[/color][color= #007700][&[/color][color= #FF8000]#39;cookie'] = array (
[/color][color= #007700]&[/color][color= #FF8000]#39;cookie_id' => COOKIEID,
[/color][color= #007700]&[/color][color= #FF8000]#39;cookie_path' => PATH,
[/color][color= #007700]&[/color][color= #FF8000]#39;cookie_dominio' => DOMINIO,);
[/color][color= #007700]}
function [/color][color= #0000BB]get_Cookie [/color][color= #007700]([/color][color= #0000BB]$nombre[/color][color= #007700])
{
if ( isset( [/color][color= #0000BB]$_COOKIE[/color][color= #007700][[/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]config[/color][color= #007700][&[/color][color= #FF8000]#39;cookie']['cookie_id'].$nombre] ))
[/color][color= #007700]{
[/color][color= #0000BB]$cookie [/color][color= #007700]= [/color][color= #0000BB]urldecode [/color][color= #007700]( [/color][color= #0000BB]$_COOKIE[/color][color= #007700][[/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]config[/color][color= #007700][&[/color][color= #FF8000]#39;cookie']['cookie_id'].$nombre]);
[/color][color= #007700]return [/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]decode [/color][color= #007700]([/color][color= #0000BB]$cookie[/color][color= #007700]);
}
else
{
return [/color][color= #0000BB]FALSE[/color][color= #007700];
}
}
function [/color][color= #0000BB]encode [/color][color= #007700]([/color][color= #0000BB]$cookie[/color][color= #007700])
{
[/color][color= #0000BB]$nuevaCookie [/color][color= #007700]= array ();
[/color][color= #0000BB]$cookie [/color][color= #007700]= [/color][color= #0000BB]base64_encode [/color][color= #007700]([/color][color= #0000BB]$cookie[/color][color= #007700]);
for ( [/color][color= #0000BB]$i[/color][color= #007700]=[/color][color= #0000BB]0[/color][color= #007700]; [/color][color= #0000BB]$i[/color][color= #007700]<=[/color][color= #0000BB]strlen [/color][color= #007700]([/color][color= #0000BB]$cookie[/color][color= #007700]); [/color][color= #0000BB]$i[/color][color= #007700]++ )
{
[/color][color= #0000BB]$nuevaCookie[/color][color= #007700][ [/color][color= #0000BB]$i [/color][color= #007700]] = [/color][color= #0000BB]ord [/color][color= #007700]( [/color][color= #0000BB]$cookie[/color][color= #007700][ [/color][color= #0000BB]$i [/color][color= #007700]] ) * [/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]encodeKey [/color][color= #007700]();
}
[/color][color= #0000BB]$nuevaCookie [/color][color= #007700]= [/color][color= #0000BB]implode [/color][color= #007700](&[/color][color= #FF8000]#39;.', $nuevaCookie);
[/color][color= #007700]return [/color][color= #0000BB]$nuevaCookie[/color][color= #007700];
}
function [/color][color= #0000BB]decode [/color][color= #007700]([/color][color= #0000BB]$antiguaCookie[/color][color= #007700])
{
[/color][color= #0000BB]$nuevaCookie [/color][color= #007700]= array ();
[/color][color= #0000BB]$cookie [/color][color= #007700]= [/color][color= #0000BB]explode [/color][color= #007700](&[/color][color= #FF8000]#39;.', $antiguaCookie);
[/color][color= #007700]for ( [/color][color= #0000BB]$i[/color][color= #007700]=[/color][color= #0000BB]0[/color][color= #007700]; [/color][color= #0000BB]$i[/color][color= #007700]<=[/color][color= #0000BB]strlen [/color][color= #007700]([/color][color= #0000BB]$antiguaCookie[/color][color= #007700]); [/color][color= #0000BB]$i[/color][color= #007700]++ )
{
[/color][color= #0000BB]$nuevaCookie[/color][color= #007700][ [/color][color= #0000BB]$i [/color][color= #007700]] = [/color][color= #0000BB]chr [/color][color= #007700]( [/color][color= #0000BB]$cookie[/color][color= #007700][ [/color][color= #0000BB]$i [/color][color= #007700]] / [/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]encodeKey [/color][color= #007700]() );
}
[/color][color= #0000BB]$nuevaCookie [/color][color= #007700]= [/color][color= #0000BB]implode [/color][color= #007700](&[/color][color= #FF8000]#39;', $nuevaCookie);
[/color][color= #0000BB]$nuevaCookie [/color][color= #007700]= [/color][color= #0000BB]base64_decode [/color][color= #007700]([/color][color= #0000BB]$nuevaCookie[/color][color= #007700]);
return [/color][color= #0000BB]$nuevaCookie[/color][color= #007700];
}
[/color][color= #FF8000]//Metodo para desencriptar la cookie. Realizamos el prodecimiento inverso
// a la encriptacion. Recogemos la cookie por parametro, Separamos los parametros
// en base a los puntos que anteriormente habiamos incluido en la codificacion,
// dividimos cada valor entre la clave de encriptacion y obtenemos en caracter
// relativo a esa ordenada o codigo ascii. Una vez lo tenemos toso
[/color][color= #007700]function [/color][color= #0000BB]encodeKey [/color][color= #007700]()
{
[/color][color= #0000BB]$nuevaKey [/color][color= #007700]= [/color][color= #0000BB]0[/color][color= #007700];
for ( [/color][color= #0000BB]$i[/color][color= #007700]=[/color][color= #0000BB]0[/color][color= #007700]; [/color][color= #0000BB]$i[/color][color= #007700]<=[/color][color= #0000BB]strlen [/color][color= #007700]( [/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]config[/color][color= #007700][&[/color][color= #FF8000]#39;cookie_key'] ); $i++ )
[/color][color= #007700]{
[/color][color= #0000BB]$nuevaKey [/color][color= #007700]+= [/color][color= #0000BB]ord [/color][color= #007700]( [/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]config[/color][color= #007700][&[/color][color= #FF8000]#39;cookie_key'][ $i ] );
[/color][color= #007700]}
return [/color][color= #0000BB]$nuevaKey[/color][color= #007700];
}
[/color][color= #FF8000]//Este metodo se encarga de transformar a numero la clave de texto que hemos
// elegido para la codificacion. Para ello saca la ordenada de cada una de las
// letras de la clave y las suma todas obteniendo un numero final que será la
// clave numérica necesaria para multiplicacion y division que se hace
// en los metodos encode y decode
[/color][color= #007700]function [/color][color= #0000BB]set_Cookie [/color][color= #007700]([/color][color= #0000BB]$nombre[/color][color= #007700], [/color][color= #0000BB]$valor[/color][color= #007700], [/color][color= #0000BB]$siempre[/color][color= #007700])
{
[/color][color= #0000BB]$tiempoDeVida [/color][color= #007700]= [/color][color= #DD0000]""[/color][color= #007700];
if ([/color][color= #0000BB]$siempre [/color][color= #007700]== [/color][color= #0000BB]1[/color][color= #007700])
{
[/color][color= #0000BB]$tiempoDeVida [/color][color= #007700]= [/color][color= #0000BB]time[/color][color= #007700]()+([/color][color= #0000BB]3600 [/color][color= #007700]* [/color][color= #0000BB]3[/color][color= #007700]);
}
[/color][color= #0000BB]$nombre [/color][color= #007700]= [/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]config[/color][color= #007700][&[/color][color= #FF8000]#39;cookie']['cookie_id'].$nombre;
[/color][color= #0000BB]$nuevoValor [/color][color= #007700]= [/color][color= #0000BB]$this[/color][color= #007700]->[/color][color= #0000BB]encode[/color][color= #007700]([/color][color= #0000BB]$valor[/color][color= #007700]);
[/color][color= #0000BB]setcookie[/color][color= #007700]([/color][color= #0000BB]$nombre[/color][color= #007700], [/color][color= #0000BB]urlencode[/color][color= #007700]([/color][color= #0000BB]$nuevoValor[/color][color= #007700]), [/color][color= #0000BB]$tiempoDeVida[/color][color= #007700]);
}
}
[/color][color= #0000BB]?>
[/color]
[/color]
</code><!--php2--></td></tr></table><div class='postcolor'><!--ephp2-->
supongo que las funciones son obvias