• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php实现的三个常用加密解密功能函数示例

    本文实例讲述了php实现的三个常用加密解密功能函数。分享给大家供大家参考,具体如下:

    算法一:

    //加密函数
    function lock_url($txt,$key='www.jb51.net')
    {
      $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";
      $nh = rand(0,64);
      $ch = $chars[$nh];
      $mdKey = md5($key.$ch);
      $mdKey = substr($mdKey,$nh%8, $nh%8+7);
      $txt = base64_encode($txt);
      $tmp = '';
      $i=0;$j=0;$k = 0;
      for ($i=0; $istrlen($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);
    }
    //解密函数
    function unlock_url($txt,$key='www.jb51.net')
    {
      $txt = urldecode($txt);
      $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";
      $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; $istrlen($txt); $i++) {
        $k = $k == strlen($mdKey) ? 0 : $k;
        $j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]);
        while ($j0) $j+=64;
        $tmp .= $chars[$j];
      }
      return base64_decode($tmp);
    }
    
    

    用法:

    $str="脚本之家";
    $pwd = lock_url($str);
    echo "加密之后:".$pwd."br/>";
    echo "解密还原:".unlock_url($pwd);
    
    

    运行结果:

    算法二:

    ?php
    function passport_encrypt($txt, $key = 'www.jb51.net') 
    { 
      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 urlencode(base64_encode(passport_key($tmp, $key))); 
    } 
    function passport_decrypt($txt, $key = 'www.jb51.net') 
    { 
      $txt = passport_key(base64_decode(urldecode($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; 
    } 
    ?>
    
    

    用法:

    ?php
    $txt = "1";
    $key = "testkey";
    $encrypt = passport_encrypt($txt,$key);
    $decrypt = passport_decrypt($encrypt,$key);
    echo $encrypt."br>";
    echo $decrypt."br>";
    ?>

    运行结果:

    算法三(改进第一个加密之后的算法)

    //加密函数
    function lock_url($txt,$key='www.jb51.net')
    {
      $txt = $txt.$key;
      $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";
      $nh = rand(0,64);
      $ch = $chars[$nh];
      $mdKey = md5($key.$ch);
      $mdKey = substr($mdKey,$nh%8, $nh%8+7);
      $txt = base64_encode($txt);
      $tmp = '';
      $i=0;$j=0;$k = 0;
      for ($i=0; $istrlen($txt); $i++) {
        $k = $k == strlen($mdKey) ? 0 : $k;
        $j = ($nh+strpos($chars,$txt[$i])+ord($mdKey[$k++]))%64;
        $tmp .= $chars[$j];
      }
      return urlencode(base64_encode($ch.$tmp));
    }
    //解密函数
    function unlock_url($txt,$key='www.jb51.net')
    {
      $txt = base64_decode(urldecode($txt));
      $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";
      $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; $istrlen($txt); $i++) {
        $k = $k == strlen($mdKey) ? 0 : $k;
        $j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]);
        while ($j0) $j+=64;
        $tmp .= $chars[$j];
      }
      return trim(base64_decode($tmp),$key);
    }

    用法:

    $str="脚本之家";
    $pwd = lock_url($str);
    echo "加密之后:".$pwd."br/>";
    echo "解密还原:".unlock_url($pwd);

    运行结果:

    PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

    文字在线加密解密工具(包含AES、DES、RC4等):
    http://tools.jb51.net/password/txt_encode

    MD5在线加密工具:
    http://tools.jb51.net/password/CreateMD5Password

    在线散列/哈希算法加密工具:
    http://tools.jb51.net/password/hash_encrypt

    在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
    http://tools.jb51.net/password/hash_md5_sha

    在线sha1/sha224/sha256/sha384/sha512加密工具:
    http://tools.jb51.net/password/sha_encode

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php加密方法总结》、《PHP编码与转码操作技巧汇总》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php正则表达式用法总结》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • 六种php加密解密方法实例讲解
    • PHP rsa加密解密算法原理解析
    • 基于PHP实现解密或加密Cloudflar邮箱保护
    • php中加密解密DES类的简单使用方法示例
    • php的RSA加密解密算法原理与用法分析
    • RSA实现JS前端加密与PHP后端解密功能示例
    • Js通过AES加密后PHP用Openssl解密的方法
    • PHP实现的AES双向加密解密功能示例【128位】
    • PHP实现的XXTEA加密解密算法示例
    • PHP实现基于3DES算法加密解密字符串示例
    • PHP实现的AES加密、解密封装类与用法示例
    • PHP实现的DES加密解密类定义与用法示例
    • 基于PHP RSA密文过长加密解密 越过1024的解决方法
    • PHP的RSA加密解密方法以及开发接口使用
    • PHP使用自定义key实现对数据加密解密的方法
    • PHP代码加密和扩展解密实战
    上一篇:php实现的中秋博饼游戏之掷骰子并输出结果功能详解
    下一篇:PHP基于回溯算法解决n皇后问题的方法示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    php实现的三个常用加密解密功能函数示例 php,实现,的,三个,常用,加密解密,