【问题标题】:Use MYSQL AES_DECRYPT function in eloquent?在 eloquent 中使用 MYSQL AES_DECRYPT 函数?
【发布时间】:2018-09-26 06:07:44
【问题描述】:

我正在使用 Slim Framework 和 eloquent ORM 进行数据库操作,我想在数据库 (MYSQL) 中存储加密数据以减少特定表的列。

我已经尝试使用 AES_ENCRYPTin eloquent 模型,该模型可以很好地存储数据,例如,

class MyDataModel extends Model {

    public function setProcessDataAttribute($value)
    {
        $this->attributes['process_data'] = 
            DB::raw("AES_ENCRYPT('".$value."', '12345')");
    }

}

现在想用MYSQL函数AES_DECRYPT解密,请问有没有办法在eloquent模型中使用MYSQL函数?

我不确定如何在我的模型中覆盖 find、get 方法。

【问题讨论】:

  • 旁注:MySQL 的 AES_ENCRYPT 不是聚合函数,它只是一个返回字符串的函数。
  • 我可以看到Slim中有一个Crypt库,你检查了吗?
  • 为什么不在模型中创建执行原始 SQL 的方法?

标签: mysql laravel orm eloquent slim


【解决方案1】:

在 laravel 5 中,推荐使用他的 AES 加密:

$newEncrypter = new \Illuminate\Encryption\Encrypter('your key or app_key@env', config('app.cipher') );
$decrypted = $newEncrypter->decrypt('your encrypted data');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多