// +---------------------------------------------------------------------- // $Id$ namespace Think; class Crypt { /** * 加密字符串 * @access static * @param string $str 字符串 * @param string $key 加密key * @return string */ static public function encrypt($data,$key,$expire=0){ $key = md5($key); $data = base64_encode($data); $x=0; $len = strlen($data); $l = strlen($key); $char = ''; for ($i=0;$i< $len;$i++) { if ($x== $l) $x=0; $char .=substr($key,$x,1); $x++; } $str = sprintf('%010d', $expire ? $expire + time():0); for ($i=0;$i< $len;$i++) { $str .=chr(ord(substr($data,$i,1))+(ord(substr($char,$i,1)))%256); } return str_replace('=', '',base64_encode($str)); } /** * 解密字符串 * @access static * @param string $str 字符串 * @param string $key 加密key * @return string */ static public function decrypt($data,$key){ $key = md5($key); $x=0; $data = base64_decode($data); $expire = substr($data,0,10); $data = substr($data,10); if($expire>0 && $expire