关于COOKIE数据加密的思路

在做COOKIE加密功能的时候,写的一个加密算法,逻辑思路就base64加密后,挨个把字符用预先设计的随机数组对应替换

<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>
<?php 
//获得随机唯一数组,页面打印后,替换md_cookie里的$hx_arr数组
/*$hx_arr = array(
    'a'=>'s',
    'b'=>'s',
    'c'=>'s',
    'd'=>'s',
    'e'=>'s',
    'f'=>'s',
    'g'=>'s',
    'h'=>'s',
    'i'=>'s',
    'j'=>'s',
    'k'=>'s',
    'l'=>'s',
    'm'=>'s',
    'n'=>'s',
    'o'=>'s',
    'p'=>'s',
    'q'=>'s',
    'r'=>'s',
    's'=>'s',
    't'=>'s',
    'u'=>'s',
    'v'=>'s',
    'w'=>'s',
    'x'=>'s',
    'y'=>'s',
    'z'=>'s',
    'A'=>'s',
    'B'=>'s',
    'C'=>'s',
    'D'=>'s',
    'E'=>'s',
    'F'=>'s',
    'G'=>'s',
    'H'=>'s',
    'I'=>'s',
    'J'=>'s',
    'K'=>'s',
    'L'=>'s',
    'M'=>'s',
    'N'=>'s',
    'O'=>'s',
    'P'=>'s',
    'Q'=>'s',
    'R'=>'s',
    'S'=>'s',
    'T'=>'s',
    'U'=>'s',
    'V'=>'s',
    'W'=>'s',
    'X'=>'s',
    'Y'=>'s',
    'Z'=>'s',
    '0'=>'s',
    '1'=>'s',
    '2'=>'s',
    '3'=>'s',
    '4'=>'s',
    '5'=>'s',
    '6'=>'s',
    '7'=>'s',
    '8'=>'s',
    '9'=>'s'
); 
$t = array_keys($hx_arr);
$tt = $t; 
foreach($tt as $k=>$v){
    $r = array_rand($t);
    $hx_arr[$v] = $t[$r];
    unset($t[$r]);
} 
echo'<pre>'; 
print_r($hx_arr);
echo'<pre>'; 
*/
  
functionmd_cookie($temp_cookie,$md=0){
    $hx_arr=array(
    'a'=>'C',
    'b'=>'A',
    'c'=>'6',
    'd'=>'B',
    'e'=>'9',
    'f'=>'W',
    'g'=>'f',
    'h'=>'5',
    'i'=>'I',
    'j'=>'T',
    'k'=>'F',
    'l'=>'z',
    'm'=>'E',
    'n'=>'m',
    'o'=>'g',
    'p'=>'s',
    'q'=>'i',
    'r'=>'L',
    's'=>'2',
    't'=>'w',
    'u'=>'q',
    'v'=>'U',
    'w'=>'a',
    'x'=>'R',
    'y'=>'d',
    'z'=>'M',
    'A'=>'J',
    'B'=>'O',
    'C'=>'y',
    'D'=>'4',
    'E'=>'e',
    'F'=>'D',
    'G'=>'H',
    'H'=>'n',
    'I'=>'K',
    'J'=>'p',
    'K'=>'0',
    'L'=>'V',
    'M'=>'8',
    'N'=>'S',
    'O'=>'u',
    'P'=>'j',
    'Q'=>'k',
    'R'=>'o',
    'S'=>'h',
    'T'=>'l',
    'U'=>'7',
    'V'=>'1',
    'W'=>'N',
    'X'=>'3',
    'Y'=>'Q',
    'Z'=>'c',
    '0'=>'t',
    '1'=>'v',
    '2'=>'P',
    '3'=>'r',
    '4'=>'Y',
    '5'=>'X',
    '6'=>'G',
    '7'=>'b',
    '8'=>'x',
    '9'=>'Z',
    '='=>'@'
    );
    $t_arr_v='';
    if($md== 0){
        $t_cookie=base64_encode($temp_cookie);
        $t_cookie_len=strlen($t_cookie);
        for($i=0;$i<$t_cookie_len;$i++){
            $t_arr_k=substr($t_cookie,$i,1);
       $hx_arr[$t_arr_k] == '' && $hx_arr[$t_arr_k] = $t_arr_k;
$t_arr_v.=$hx_arr[$t_arr_k]; } }elseif($md== 1){ $t_cookie_len=strlen($temp_cookie); for($i=0;$i<$t_cookie_len;$i++){ $t_arr_k=substr($temp_cookie,$i,1); $s_k = array_search($t_arr_k,$hx_arr);
$s_k == '' && $s_k = $t_arr_k;

$t_arr_v .= $s_k;
} $t_arr_v=base64_decode($t_arr_v); }else{ exit('error md cookie'); } return$t_arr_v; } //测试部分 $a = 'aaadd安世高dss稍等s123'; echo$a.'<br>'; $b = md_cookie($a); echo$b.'<br>'; $c = md_cookie($b,1); echo$c.'<br>'; ?>

 

posted @ 2012-11-01 10:39  aluode  阅读(1788)  评论(3编辑  收藏  举报