/**
* 自定义的一个加解密插件
* User: staff
* Date: 2019/3/27
* Time: 16:13
*/
class Encrypter
{
private static $key = "ZmUbqPipJ0Pr7tGmkHDBazjpbKjFZc7S";
private static $cipher = "AES-256-CBC";
public static function encrypt($str)
{
$ivlen = openssl_cipher_iv_length(self::$cipher);
$iv = openssl_random_pseudo_bytes($ivlen);
$value = openssl_encrypt($str, self::$cipher, self::$key, 0, $iv);
$iv = base64_encode($iv);
$param = [
'iv' => $iv,
'value' => $value
];
return base64_encode(json_encode($param));
}
public static function decrypt($str)
{
$payload = self::getJsonPayload($str);
$iv = base64_decode($payload['iv']);
$decrypted = openssl_decrypt($payload['value'], self::$cipher, self::$key, 0, $iv);
return $decrypted;
}
/**
* @param $payload
* @return array
*/
static function getJsonPayload($payload)
{
$payload = json_decode(base64_decode($payload), true);
return $payload;
}
}