• php 加密解密


    function lock($data) {
        $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";
        $key = 'z123j456s789';
        if($data['type'] == 'encode') {
            $nh = rand(0,64);
            $ch = $chars[$nh];
            $mdKey = md5($key.$ch);
            $mdKey = substr($mdKey,$nh%8, $nh%8+7);
            $txt = base64_encode($data['param']);
            $tmp = '';
            $i=0;$j=0;$k = 0;
            for ($i=0; $i<strlen($txt); $i++) {
                $k = $k == strlen($mdKey) ? 0 : $k;
                $j = ($nh+strpos($chars,$txt[$i])+ord($mdKey[$k++]))%64;
                $tmp .= $chars[$j];
            }
            return urlencode($ch.$tmp);
        }else if($data['type'] == 'decode') {
            $txt = urldecode($data['param']);
            $ch = $txt[0];
            $nh = strpos($chars,$ch);
            $mdKey = md5($key.$ch);
            $mdKey = substr($mdKey,$nh%8, $nh%8+7);
            $txt = substr($txt,1);
            $tmp = '';
            $i=0;$j=0; $k = 0;
            for ($i=0; $i<strlen($txt); $i++) {
                $k = $k == strlen($mdKey) ? 0 : $k;
                $j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]);
                while ($j<0) $j+=64;
                $tmp .= $chars[$j];
            }
            return base64_decode($tmp);
        }
    }
    
    //加密
    $encode = lock(array('param' => '测测哈哈', 'type' => 'encode'));
    echo $encode.'<br/>';
    //解密
    echo lock(array('param' => $encode, 'type' => 'decode'));
    

      测试结果:

  • 相关阅读:
    nginx接收tcp请求转发server
    eclipse 配置github 提交代码
    eclipse安装JDK11
    java内存管理
    进程 线程 纤程 中断
    DCL单例为什么要加volatile
    如何清理history
    后置引用
    nc 工具使用
    ip_local_port_range 和 ip_local_reserved_ports
  • 原文地址:https://www.cnblogs.com/zheart/p/9284465.html
Copyright © 2020-2023  润新知