/**
* laravel解密函數
* @param $text
* @param string $key
* @return mixed|string
*/
function laravelDecrypt($text,$key='')
{laravel
$size =16;json
$defaultKey = @mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
$key = empty($key)?$defaultKey:$key;
$payload = json_decode(base64_decode($text), true);
if(!$payload||!is_array($payload) || !isset($payload['iv']) || !isset($payload['value']) || !isset($payload['mac']))
{
return '';
}
$iv = base64_decode($payload['iv']);
$decrypted = openssl_decrypt($payload['value'],'AES-256-CBC',$key,0, $iv);
if ($decrypted === false) {
return '';
}
return unserialize($decrypted);
}
function laravelEncrypt($text,$key='')
{函數
$size = 16;
$defaultKey = @mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
$key = empty($key)?$defaultKey:$key;
$iv = @mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
$value = openssl_encrypt(serialize($text),'AES-256-CBC', $key, 0, $iv);
if ($value === false) {
return '';
}
$iv = base64_encode($iv);
$mac = hash_hmac('sha256', $iv.$value, $key);
$json = json_encode(compact('iv', 'value', 'mac'));.net
return base64_encode($json);
}code