如何解密由Laravel加密的MySQL字段[关闭]

ee7vknir  于 2023-05-16  发布在  Mysql
关注(0)|答案(1)|浏览(91)

已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

6天前关闭。
Improve this question
在我的laravel应用程序中,我需要通过查询构建器检索数据,我有一些加密的字段
我如何通过查询构建器在selectRaw方法中解密它,而不是模型转换属性或getters,因为当我们使用查询构建器时,这些方法将不会被执行
我尝试Aes_decrypt mysql函数,但它的返回空

mitkmikd

mitkmikd1#

我想你可以使用mutator https://laravel.com/docs/10.x/eloquent-mutators#defining-a-mutator
在您的模型上:

protected function theField(): Attribute
{
    return Attribute::make(
        get: fn (string $value) => decrypt($value),
    );
}

解密:https://laravel.com/docs/10.x/helpers#method-decrypt或使用Crypt facade
但是如果你使用查询生成器,你将不得不对集合进行解密:

$data = DB::table('users')->where(...)->get()->transform(fn($row) => [
    'decrypted' => decrypt($row->encrypted)
]);

相关问题