您的位置:首页 > 其它

onethink 密码加密方式详解

2017-04-21 14:45 274 查看
/**
* 系统非常规MD5加密方法
* @param  string $str 要加密的字符串
* @return string
*/
function think_ucenter_md5($str, $key = 'ThinkUCenter'){
return '' === $str ? '' : md5(sha1($str) . $key);
}

/**
* 系统加密方法
* @param string $data 要加密的字符串
* @param string $key  加密密钥
* @param int $expire  过期时间 (单位:秒)
* @return string
*/
function think_ucenter_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));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: