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

PHP中常用的加密解密方法总结

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

php加密解密:php加密和解密函数通常可以用来加密一些有用的字符串存放在数据库里或作为各个子系统间同步登陆的令牌,并且通过解密算法解密字符串,该函数使用了base64和MD5加密和解密。

相关推荐:《PHP教程》

①第一种加密解密算法

<?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);  ?>

②第二种加密解密算法:

<?php  //加密函数  function lock_url($txt,$key='www.zhuoyuexiazai.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.zhuoyuexiazai.com'){      $txt = urldecode($txt);      $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";      $ch = $txt[0];      $nh = strpos($chars,$ch);      $mdKey = md5($key.$ch);      $mdKey = substr($mdKey,$nh%8, $nh%8+7)<div style="color:transparent">!本文来源gaodai.ma#com搞#代!码(网</div><em>搞gaodaima代码</em>;      $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);  }  ?>

③第三种加密解密算法:

<?php    //改进后的算法  //加密函数  function lock_url($txt,$key='zhuoyuexiazai'){      $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='zhuoyuexiazai'){      $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    function passport_encrypt($txt, $key = 'www.zhuoyuexiazai.com') {       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.zhuoyuexiazai.com') {       $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;   }        $txt = "1";   $key = "testkey";   $encrypt = passport_encrypt($txt,$key);   $decrypt = passport_decrypt($encrypt,$key);     echo $encrypt."<br>";   echo $decrypt."<br>";     ?>

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

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

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

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