在Laravel中查询加密模型数据

时间:2018-04-01 07:04:57

标签: php laravel laravel-5 laravel-5.5

我正在提出的申请要求是加密所有用户数据(电子邮件,地址,出生日期等)。所以,我使用了一个像here那样的特征。但是,这会在查询下面的数据时出现问题。

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

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

我想到的一个相当天真的解决方案是在查询之前解密整个数据集

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

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

2 个答案:

答案 0 :(得分:0)

多数民众赞成在您的数据库中,您存储加密的电子邮件吗?

只是像这样查询..

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

答案 1 :(得分:0)

不是。如果该列中的值是加密的,并且您解密了一个我认为是纯文本的变量-但让我们假设它也是加密的..您将数据库中的加密值与解密值进行比较是没有意义的。