• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php加解密怎么做

php 搞代码 4年前 (2022-01-04) 15次浏览 已收录 0个评论

基于这几个函数可逆转的加密为:base64_encode()urlencode()相对应的解密函数:base64_decode()urldecode() ,示例如下:

1、第一种加密解密算法

<?php  function encryptDecrypt($key, $string, $decrypt){       if($decrypt){           $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12");           return $decrypted;       }else{           $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));           return $encrypted;       }   }   //加密:"z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk="  echo encryptDecrypt('password', 'Helloweba欢迎您',0);   //解密:"Helloweba欢迎您"  echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);  ?>

2、第二种解密解密算法

<?php  //加密函数  function lock_url($txt,$key='www.xxxx.com'){      $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; $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);  }  //解密函数  function unlock_url($txt,$key='www.xxxx.com'){      $txt = urldecode($txt);      $chars = "ABCD<span style="color:transparent">来源gaodai#ma#com搞*!代#%^码网</span>EFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";      $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);  }  ?>

3、第三种加密解密算法

<?php  //改进后的算法  //加密函数  function lock_url($txt,$key='test'){      $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; $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(base64_encode($ch.$tmp));  }  //解密函数  function unlock_url($txt,$key='test'){      $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; $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 trim(base64_decode($tmp),$key);  }  ?>

对于不同需要,可以使用不同加密解密算法。

推荐教程:PHP视频教程

以上就是php加解密怎么做的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php加解密怎么做
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址