php加密解密:php加密和解密函数通常可以用来加密一些有用的字符串存放在数据库里或作为各个子系统间同步登陆的令牌,并且通过解密算法解密字符串,该函数使用了base64和MD5加密和解密。
①第一种加密解密算法
- <?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);
- $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[$