zoukankan      html  css  js  c++  java
  • 一个简单的php加密解密函数,动态加密

    最近项目需要谢了一个简单的php加密解密函数,把代码贴出来 有什么不足的 大家指正
    function encode_pass($tex,$key,$type="encode"){
        $chrArr=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
                      'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
                      '0','1','2','3','4','5','6','7','8','9');
        if($type=="decode"){
            if(strlen($tex)<14)return false;
            $verity_str=substr($tex, 0,8);
            $tex=substr($tex, 8);
            if($verity_str!=substr(md5($tex),0,8)){
                //完整性验证失败
                return false;
            }    
        }
        $key_b=$type=="decode"?substr($tex,0,6):$chrArr[rand()%62].$chrArr[rand()%62].$chrArr[rand()%62].$chrArr[rand()%62].$chrArr[rand()%62].$chrArr[rand()%62];
        $rand_key=$key_b.$key;
        $rand_key=md5($rand_key);
        $tex=$type=="decode"?base64_decode(substr($tex, 6)):$tex;
        $texlen=strlen($tex);
        $reslutstr="";
        for($i=0;$i<$texlen;$i++){
            $reslutstr.=$tex{$i}^$rand_key{$i%32};
        }
        if($type!="decode"){
            $reslutstr=trim($key_b.base64_encode($reslutstr),"==");
            $reslutstr=substr(md5($reslutstr), 0,8).$reslutstr;
        }
        return $reslutstr;
    }
    $psa=encode_pass("phpcode","taintainxousad");
    echo $psa;
    echo encode_pass($psa,"taintainxousad",'decode');
  • 相关阅读:
    LeetCode347 前k个高频元素
    剑指42 连续字数租的最大和
    hdu1540
    hdu4553 两棵线段树
    cdq分治
    负环
    最短路
    差分约束系统
    hdu3308
    hdu5862 树状数组+扫描线+离散化
  • 原文地址:https://www.cnblogs.com/mutuan/p/2424752.html
Copyright © 2011-2022 走看看