昵称:放飞梦想。欢迎学习交流!
//加密
function enCode($data, $key = 'abc123')
{
$result = '';
if ($data) {
$data = strrev($data);
$len_data = strlen($data);
$key_md5 = hash('sha256', md5($key));
$len_key = strlen($key_md5);
$str = '';
for ($i = 0; $i < $len_data; $i++) {
$str .= $data[$i] ^ $key_md5[$i % $len_key];
}
$key_sha1 = sha1(crc32($key));
$len_key = strlen($key_sha1);
$data = '';
for ($i = 0; $i < $len_data; $i++) {
$data .= $str[$i] ^ $key_sha1[$i % $len_key];
}
$rand = mt_rand(1, 5);
$pad = random_bytes($rand);
$str = $pad . $data . $rand;
$data = bin2hex($str);
$data = str_replace(['a', 'b', 'c'], ['z', 'j', 'q'], $data);
$data = str_rot13($data);
$data = strrev($data);
$data = str_replace(['0', '1', '2'], ['o', 'l', 'z'], $data);
$result = $data;
}
return $result;
}
//解密
function deCode($data, $key = 'abc123')
{
$result = '';
if ($data) {
$data = str_replace(['o', 'l', 'z'], ['0', '1', '2'], $data);
$data = strrev($data);
$data = str_rot13($data);
$data = str_replace(['z', 'j', 'q'], ['a', 'b', 'c'], $data);
if (ctype_xdigit($data) && strlen($data) % 2 == 0) {
$data = hex2bin($data);
$int = substr($data, -1);
$data = substr($data, $int, -1);
$len_data = strlen($data);
$key_sha1 = sha1(crc32($key));
$len_key = strlen($key_sha1);
$str = '';
for ($i = 0; $i < $len_data; $i++) {
$str .= $data[$i] ^ $key_sha1[$i % $len_key];
}
$key_md5 = hash('sha256', md5($key));
$len_key = strlen($key_md5);
$data = '';
for ($i = 0; $i < $len_data; $i++) {
$data .= $str[$i] ^ $key_md5[$i % $len_key];
}
$data = strrev($data);
$result = $data;
}
}
return $result;
}
【EOF】结束