加密反加密问题

浏览:489 发布日期:2017/08/10 分类:求助交流
<?php
namespace Home\Controller;
use Think\Controller;
class IndextestController extends Controller {
    public function index(){
       
        $arr=array(1,43,54,62,21,66,32,78,36,76,39);
       
        $wang = serialize($arr);
        $key = 'ming';
        $jiami = $this->passport_encrypt($wang,$key);
        dump($jiami);

        $jiemo = $this->passport_decrypt($jiami,$key);
        dump(unserialize($jiemo));

    }

    //加密函数APP
    function passport_encrypt($txt, $key) {
        srand((double)microtime() * 1000000);
        $encrypt_key = md5(rand(0, 32000));
        $ctr = 0;
        $tmp = '';
        for($i = 0;$i < strlen($txt); $i++) {
            $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
            $tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);
        }
        return base64_encode($this->passport_key($tmp, $key));
    }

    //解密函数
    function passport_decrypt($txt, $key) {
        $txt = $this->passport_key(base64_decode($txt), $key);
        $tmp = '';
        for($i = 0;$i < strlen($txt); $i++) {
            $md5 = $txt[$i];
            $tmp .= $txt[++$i] ^ $md5;
        }
        return $tmp;
    }

    function passport_key($txt, $encrypt_key) {
        $encrypt_key = md5($encrypt_key);
        $ctr = 0;
        $tmp = '';
        for($i = 0; $i < strlen($txt); $i++) {
            $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
            $tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
        }
        return $tmp;
    }



}
最佳答案
评论( 相关
后面还有条评论,点击查看>>