我在地穴类上有一个小的Laravel项目。对于Crypt :: encrypt(..)和Crypt :: decrypt(..)都可以正常工作。但是我有问题,如果我直接更改加密值,然后尝试捕获异常。例如,我的加密值是
zczc1234j5j3jh38234wsdfsdf214
然后我直接添加一些单词,如下所示。
zczc1234j5j3jh38234wsdfsdf214_addsometext
我尝试解密并得到如下错误
throw new DecryptException('The payload is invalid.')
因此,我尝试使用render方法捕获异常。
public function render($request, Exception $exception)
{
if ($exception instanceof \Illuminate\Contracts\Encryption\DecryptException) {
dd("error");
return route('login')->withError('Your DB may be hacked');
}
return parent::render($request, $exception);
}
我不知道为什么方法不触发,感谢并感谢所有评论。
答案 0 :(得分:0)
您应该使用
use Illuminate\Contracts\Encryption\DecryptException;
try {
$decrypted = decrypt($encryptedValue);
} catch (DecryptException $e) {
//
}