php base64 可以在连接里使用的加密函数

因为要在连接里加参数所以多参数加密 但是用原生的base64 会有一些符号‘/’,‘=’这样的出现就破坏了链接的有效性,所以在网上找到了如下的替代方法测试是有效的。

function base64_en($str){
        $result = base64_encode($str);
        $result = str_replace("/","-",$result);
        $result = str_replace("+","(",$result);
        $i=0;
        while(substr($result,strlen($result)-1)=="="){
                $result = substr($result,0,strlen($result)-1);
                $i++;
        }
        return $result . $i;
}

function base64_de($str){
        $result = str_replace("-","/",$str);
        $result = str_replace("(","+",$result);
        $last = intval(substr($result,strlen($result)-1));
        $normal = substr($result,0,strlen($result)-1);
        if($last==0){return base64_decode($normal);}
        for($i=1;$i<=$last;$i++){
                $normal .= "=";
        }
        return base64_decode($normal);
}