一对php的加密解密方法
<?php
function system_encrypt($data, $key) {
$str = serialize($data);
$key = md5($key);
$k = md5(rand(0, 100));
$k = substr($k, 0, 16);
$result = '';
for ($i = 0; $i < strlen($str); $i++) {
$result .= substr($str, $i, 1) ^ substr($key, $i % strlen($key), 1);
}
return base64_encode($result . $k);
}
function system_decrypt($str, $key) {
$key = md5($key);
$str = base64_decode($str);
$len = strlen($str);
$str = substr($str, 0, $len - 16);
$result = '';
for ($i = 0; $i < strlen($str); $i++) {
$result .= substr($str, $i, 1) ^ substr($key, $i % strlen($key), 1);
}
$result = @unserialize($result);
return $result ? : null;
}
$key = 'shuai';
$data = ['uid' => 1, 'time' => time()];
// 系统加密
$result = system_encrypt($data, $key);
echo $result . "\n\n";
// 系统解密
$value = system_decrypt($result, $key);
var_dump($value);