Laravel有一個內置的地穴類,允許加密。關鍵是相關聯的應用程序,並能按要求使用類似的改變:雄辯模型AES_ENCRYPT加密
$key = env('DEV_CACHE_KEY', 'DEV_CHANGE');
Crypt::setKey($key); // sets to new key
$action->descr = Crypt::encrypt($request->descr);
Crypt::setKey(Config::get('app.key')); // resets key to app
$action->save()
我們保存使用保存特定的服務器上的Memcached的關鍵我們的數據。這設置爲通過Memcached類檢索,但現在我正在使用定義的鍵保存到應用程序環境。定義的密鑰在MySQL AES_DECRYPT()
中用於解密保存的數據。我們正試圖保持向後兼容性,所以我需要能夠執行類似的MySQLs AES_ENCRYPT()
。
,當我去與它下面返回空解密上面的代碼不會因爲工作。
$ynak = env('DEV_CACHE_KEY', 'DEV_CHANGE');;
return DB::connection('action_table')
->table('action AS a')
->select('a.*', DB::raw('AES_DECRYPT(`descr`, "'.$ynak.'") as `descr`'), DB::raw('(status LIKE "%completed%" OR status LIKE "%closed%") as isClosed'));
表的設置方式有點不好,因爲我繼承了它,但我不允許進行更改。
有沒有辦法使用Crypt::encrypt
等於MySQL AES_ENCRYPT
?