查询 Laravel 中的加密模型数据

Querying Encrypted Model Data in Laravel

我正在制作的应用程序的要求是对所有用户数据(电子邮件、地址、出生日期等)进行加密。所以,我使用了一个类似 here 的特征。但是,这在查询如下数据时会出现问题。

$user = User::where("email", "=", $email);

由于我正在搜索加密数据,因此上述查询将无法正常工作。

我想到的一个相当幼稚的解决方案是在像这样查询之前解密整个数据集

$data = User::all();
$cnt = count($data);
for($i=0; $i<$cnt; $i++){/* decrypt record i */}

但这是非常不切实际且昂贵的。这个问题有更好的解决方案吗?

这意味着在您的数据库中,您存储了加密的电子邮件,对吗?

就这样查询..

$user = User::where("email", Crypt::decrypt($email));
echo Crypt::decrypt($user->email); //result

没有。如果列中的值是加密的,并且您解密了一个变量,我假设它是纯文本——但我们假设它也是加密的……您根据没有任何意义的解密值评估数据库中的加密值。