1 /** 2 * 系统非常规MD5加密方法 3 * @param string $str 要加密的字符串 4 * @return string 5 */ 6 function think_ucenter_md5($str, $key = 'ThinkUCenter'){ 7 return '' === $str ? '' : md5(sha1($str) . $key); 8 } 9 10 /** 11 * 系统加密方法 12 * @param string $data 要加密的字符串 13 * @param string $key 加密密钥 14 * @param int $expire 过期时间 (单位:秒) 15 * @return string 16 */ 17 function think_ucenter_encrypt($data, $key, $expire = 0) { 18 $key = md5($key); 19 $data = base64_encode($data); 20 $x = 0; 21 $len = strlen($data); 22 $l = strlen($key); 23 $char = ''; 24 for ($i = 0; $i < $len; $i++) { 25 if ($x == $l) $x=0; 26 $char .= substr($key, $x, 1); 27 $x++; 28 } 29 $str = sprintf('%010d', $expire ? $expire + time() : 0); 30 for ($i = 0; $i < $len; $i++) { 31 $str .= chr(ord(substr($data,$i,1)) + (ord(substr($char,$i,1)))%256); 32 } 33 return str_replace('=', '', base64_encode($str)); 34 }