PHP从零基础学编程 --- 自定义对称加密算法

//加密
function encode($string="Admin",$secret_key="UOlTZfC19ylawVnkG63WIhdZecdXi4UMxBBX21aro4WIGVLIvkZWXusmD9vqDvZ7yheUtG5KZsU7cNxZHrjPAA4BrYaMmOrkWOeJhdoVYIgp6yG8hq0Azy3IBGc0r0gp",$md5_key ="738604c279358ec611016fd36cb8adf5",$yi_wei=2){
    $str_length = strlen($string);
    $str = "";
    $rand = rand(0,($str_length-1));
    for($i=0;$i<$str_length;$i++){
        $x = $string[$i];
        $y = strpos($secret_key,$x);
        echo $x."  ".$y."<br>";
        if($y){
            $z = $secret_key[($y+$yi_wei)]."@$y%";
        }else{
            $z =$x."@0%";
        }
        if($i == $rand){
            $str .=$z.$md5_key;
        }else{
            $str .=$z;
        }
    }
    return $str;
}
//解密
function decode($string="",$secret_key="UOlTZfC19ylawVnkG63WIhdZecdXi4UMxBBX21aro4WIGVLIvkZWXusmD9vqDvZ7yheUtG5KZsU7cNxZHrjPAA4BrYaMmOrkWOeJhdoVYIgp6yG8hq0Azy3IBGc0r0gp",$md5_key ="738604c279358ec611016fd36cb8adf5",$yi_wei=2){
    $string = str_replace($md5_key,"",$string);
    $string_arr = explode("%",$string);
    $str="";
    foreach($string_arr as $key=>$v){
        if(!empty($v)){
           $x1 = explode("@",$v);
           $x2 = $x1[0];
           $x3 = $x1[1];
           if($x3 >0){
             $y1 = $secret_key[($x3+$yi_wei)];
             if($y1 == $x2){
                $str .=$secret_key[$x3];
             }else{
                $str .=$x2;  
             }
           }else{
                $str .=$x2;  
           }
        }
    }
   return $str;
}

posted on 2016-08-11 13:52  小武子你好  阅读(165)  评论(0)    收藏  举报

导航