在Laravel中设置加密密钥会导致注销

sum*_*mit 3 php encryption mcrypt laravel

我需要用于后续Crypt::encrypt()Crypt::decrypt()调用的密钥,但仅限于当前请求.

    Crypt::setKey('1');
    $pin_code   = Crypt::encrypt($pin_codes[$key]);
Run Code Online (Sandbox Code Playgroud)

//它进行加密然后自动注销

可能是什么问题?

sum*_*mit 7

我想到了

Laravel只使用Crypt包的三个地方.

  1. 缓存.特别是如果您正在使用数据库缓存驱动程序,则在保存之前会对缓存中的值进行加密,并在加载时对其进行解密.
  2. 饼干.Cookie值始终以加密方式发送给用户.加载请求时,将解密所有cookie值.
  3. 队列.具体来说,如果您正在使用铁队列驱动程序,那么一旦检索到值,就会将值存储在队列中进行加密和解密.

由于点2 ...我们将退出系统

所以最好将键重置为原始

Crypt::setKey('1'); 
$pin_code   = Crypt::encrypt($pin_codes[$key]);
Crypt::setKey(Config::get('app.key'));//reset to original after job is done
Run Code Online (Sandbox Code Playgroud)