三个php加密解密算法
来源:互联网 发布:谷嫂淘宝同款 破解版 编辑:程序博客网 时间:2024/06/01 20:30
三个功能强大的php加密解密函数
1 //加密函数 2 function lock_url($txt,$key='www.fyunw.com') 3 { 4 $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+"; 5 $nh = rand(0,64); 6 $ch = $chars[$nh]; 7 $mdKey = md5($key.$ch); 8 $mdKey = substr($mdKey,$nh%8, $nh%8+7); 9 $txt = base64_encode($txt); 10 $tmp = ''; 11 $i=0;$j=0;$k = 0; 12 for ($i=0; $i<strlen($txt); $i++) { 13 $k = $k == strlen($mdKey) ? 0 : $k; 14 $j = ($nh+strpos($chars,$txt[$i])+ord($mdKey[$k++]))%64; 15 $tmp .= $chars[$j]; 16 } 17 return urlencode($ch.$tmp); 18 } 19 //解密函数 20 function unlock_url($txt,$key='www.fyunw.com') 21 { 22 $txt = urldecode($txt); 23 $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+"; 24 $ch = $txt[0]; 25 $nh = strpos($chars,$ch); 26 $mdKey = md5($key.$ch); 27 $mdKey = substr($mdKey,$nh%8, $nh%8+7); 28 $txt = substr($txt,1); 29 $tmp = ''; 30 $i=0;$j=0; $k = 0; 31 for ($i=0; $i<strlen($txt); $i++) { 32 $k = $k == strlen($mdKey) ? 0 : $k; 33 $j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]); 34 while ($j<0) $j+=64; 35 $tmp .= $chars[$j]; 36 } 37 return base64_decode($tmp); 38 } 39 40 41 42 <?php 43 function passport_encrypt($txt, $key = 'www.fyunw.com') 44 { 45 srand((double)microtime() * 1000000); 46 $encrypt_key = md5(rand(0, 32000)); 47 $ctr = 0; 48 $tmp = ''; 49 for($i = 0;$i < strlen($txt); $i++) { 50 $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; 51 $tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]); 52 } 53 return urlencode(base64_encode(passport_key($tmp, $key))); 54 } 55 56 function passport_decrypt($txt, $key = 'www.fyunw.com') 57 { 58 $txt = passport_key(base64_decode(urldecode($txt)), $key); 59 $tmp = ''; 60 for($i = 0;$i < strlen($txt); $i++) { 61 $md5 = $txt[$i]; 62 $tmp .= $txt[++$i] ^ $md5; 63 } 64 return $tmp; 65 } 66 67 function passport_key($txt, $encrypt_key) 68 { 69 $encrypt_key = md5($encrypt_key); 70 $ctr = 0; 71 $tmp = ''; 72 for($i = 0; $i < strlen($txt); $i++) { 73 $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; 74 $tmp .= $txt[$i] ^ $encrypt_key[$ctr++]; 75 } 76 return $tmp; 77 } 78 ?> 79 80 <?php 81 82 $txt = "1"; 83 $key = "testkey"; 84 $encrypt = passport_encrypt($txt,$key); 85 $decrypt = passport_decrypt($encrypt,$key); 86 87 echo $encrypt."<br>"; 88 echo $decrypt."<br>"; 89 ?> 90 91 //改进第一改加密之后的算法 92 //加密函数 93 function lock_url($txt,$key='www.fyunw.com') 94 { 95 $txt = $txt.$key; 96 $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+"; 97 $nh = rand(0,64); 98 $ch = $chars[$nh]; 99 $mdKey = md5($key.$ch);100 $mdKey = substr($mdKey,$nh%8, $nh%8+7);101 $txt = base64_encode($txt);102 $tmp = '';103 $i=0;$j=0;$k = 0;104 for ($i=0; $i<strlen($txt); $i++) {105 $k = $k == strlen($mdKey) ? 0 : $k;106 $j = ($nh+strpos($chars,$txt[$i])+ord($mdKey[$k++]))%64;107 $tmp .= $chars[$j];108 }109 return urlencode(base64_encode($ch.$tmp));110 }111 //解密函数112 function unlock_url($txt,$key='www.fyunw.com')113 {114 $txt = base64_decode(urldecode($txt));115 $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";116 $ch = $txt[0];117 $nh = strpos($chars,$ch);118 $mdKey = md5($key.$ch);119 $mdKey = substr($mdKey,$nh%8, $nh%8+7);120 $txt = substr($txt,1);121 $tmp = '';122 $i=0;$j=0; $k = 0;123 for ($i=0; $i<strlen($txt); $i++) {124 $k = $k == strlen($mdKey) ? 0 : $k;125 $j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]);126 while ($j<0) $j+=64;127 $tmp .= $chars[$j];128 }129 return trim(base64_decode($tmp),$key);130 }
阅读全文
0 0
- 三个php加密解密算法
- PHP加密解密内部算法
- PHP加密解密内部算法
- PHP-AES加密解密算法
- PHP可逆加密解密算法
- php加密解密算法1
- php加密解密算法2
- php加密解密小算法
- PHP可逆加密解密算法
- PHP可逆加密解密算法
- php 加密解密算法-mcrypt
- 加密解密算法,客户端C++加密,服务端PHP解密
- RC4加密解密算法 for php
- 威盾PHP加密专家解密算法
- 一组PHP可逆加密解密算法
- PHP一组可逆加密解密算法
- 一组PHP可逆加密解密算法
- 一组PHP可逆加密解密算法
- 软件的复杂性与构造定律
- linux 下git使用教程
- 悲观锁
- 一组PHP可逆加密解密算法
- 一个经典的PHP加密解密算法
- 三个php加密解密算法
- 【代码】Android开发收藏功能添加的实现 (2013-08-13 11:15:24)
- php实现cookie加密解密
- (OK)(OK) Android-x86-7.1.1/ kernel 4.4.62
- PHP 短连接生成算法
- 簡單的移动端菜单栏滑屏demo
- 使用fiddler进行genymotion安卓虚拟机手机抓包
- centos 修改时区及NTP时间同步
- centos6 yum安装最新版mysql5.7