转载地址忘记了,刚开始学PHP时,做的笔记

function encrypt($string,$operation,$key=''){
    $key=md5($key);
    $key_length=strlen($key);
    $string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string;
    $string_length=strlen($string);
    $rndkey=$box=array();
    $result='';
    for($i=0;$i<=255;$i++){
           $rndkey[$i]=ord($key[$i%$key_length]);
        $box[$i]=$i;
    }
    for($j=$i=0;$i<256;$i++){
        $j=($j+$box[$i]+$rndkey[$i])%256;
        $tmp=$box[$i];
        $box[$i]=$box[$j];
        $box[$j]=$tmp;
    }
    for($a=$j=$i=0;$i<$string_length;$i++){
        $a=($a+1)%256;
        $j=($j+$box[$a])%256;
        $tmp=$box[$a];
        $box[$a]=$box[$j];
        $box[$j]=$tmp;
        $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));
    }
    if($operation=='D'){
        if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8)){
            return substr($result,8);
        }else{
            return '';
        }
    }else{
        return str_replace('=','',base64_encode($result));
    }
} 





$str = '123456';
echo '加密前:'.$str.'</br>';
$key = '999999999';
$token = encrypt($str, 'E', $key);
echo '加密后:'.encrypt($str, 'E', $key).'</br>';
echo '解密后:'.encrypt($token, 'D', $key).'</br>'; 

一文丶
27 声望3 粉丝

php程序员,不断学习中