php 加解密函数
PHP 加密解密函数:
/** * 系统加密方法 * @param string $data 要加密的字符串 * @param string $key 加密密钥 * @param int $expire 过期时间 单位 秒 * @return string * @author winky */ function encrypt($data, $key = ‘‘, $expire = 0) { $key = md5(empty($key) ? C(‘DATA_AUTH_KEY‘) : $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(array(‘+‘, ‘/‘, ‘=‘), array(‘-‘, ‘_‘, ‘‘), base64_encode($str)); } /** * 系统解密方法 * @param string $data 要解密的字符串 (必须是encrypt方法加密的字符串) * @param string $key 加密密钥 * @return string * @author winky */ function decrypt($data, $key = ‘‘) { $key = md5(empty($key) ? C(‘DATA_AUTH_KEY‘) : $key); $data = str_replace(array(‘-‘, ‘_‘), array(‘+‘, ‘/‘), $data); $mod4 = strlen($data) % 4; if ($mod4) { $data .= substr(‘====‘, $mod4); } $data = base64_decode($data); $expire = substr($data, 0, 10); $data = substr($data, 10); if ($expire > 0 && $expire < time()) { return ‘‘; } $x = 0; $len = strlen($data); $l = strlen($key); $char = $str = ‘‘; for ($i = 0; $i < $len; $i++) { if ($x == $l) $x = 0; $char .= substr($key, $x, 1); $x++; } for ($i = 0; $i < $len; $i++) { if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) { $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1))); } else { $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1))); } } return base64_decode($str); }
相关推荐
luckymaoyy 2020-04-08
softwear 2020-08-21
eroshn 2020-06-21
sunzhihaofuture 2020-06-21
tanrong 2020-04-20
herohope 2020-03-27
liuyang000 2019-12-30
niuyisheng 2013-06-29
缘起宇轩阁 2019-12-21
云之飞踢 2019-12-18
heray0 2019-12-07
哆来咪er 2019-11-19
东辉在线 2019-11-05
resilient 2019-11-04
oraclemch 2019-10-31