无法't Crypt::解密来自工匠命令Laravel/Lumen


Couldn't Crypt::decrypt from artisan command Laravel/Lumen

我正在研究一个需要存储加密信息的项目,使用use Illuminate'Support'Facades'Crypt;时,存储,更新,显示(在控制器中使用)工作良好

但是当我需要创建一个命令来运行时,在该命令中我需要获得未加密的代码,但是当我使用它时,它显示

MAC无效

注意:当我使用use Crypt;时,控制器中的代码工作正常,但在命令中,它说

没有找到"Crypt"类

命令(函数topupSim()导致错误)中的代码:

public function handle()
{
    Log::info("** TopUpForCriticalSimsCommand: started");
    $sims = Sim::getCriticalSims();
    foreach ($sims as $sim) {
        $telco_id = $sim->telco_id;
        //Find topup code with same telco
        $topup_code = TopupCode::getAvailableCode($telco_id);
        if ($topup_code) {
            /** @var TopupCode $topup_code */
            if (Engine::topupSim($sim, $topup_code)){
                Log::info("** TopUpForCriticalSimsCommand: topup success
                 for {$sim->phone_number} with code {$topup_code->getCensoredCode()}");
            }else{
                Log::info("** TopUpForCriticalSimsCommand: topup fail
                 for {$sim->phone_number} with code {$topup_code->getCensoredCode()}");
            }
        }
    }
    Log::info("** TopUpForCriticalSimsCommand: finished");
}

topupSim函数,使用Crypt的代码:

public static function topupSim(Sim $sim, TopupCode $topupCode)
{
    $code = $topupCode->getCode();
    $serial = $topupCode->getSerial();
    //TODO: Do topup for sim
    if (false /*Success*/) {
        $topupCode->setUse();
        return true;
    }
    return false;
}

2函数getCode(), getSerial()使用Crypt,这2函数在模型

public function getCode()
{
    $code = Crypt::decrypt($this->getAttribute('code'));
    return $code;
}
public function getSerial()
{
    $serial = Crypt::decrypt($this->getAttribute('serial'));
    return $serial;
}
日志文件:

[2016-08-19 02:58:57] lumen.INFO: ** TopUpForCriticalSimsCommand: started  
[2016-08-19 03:01:02] lumen.ERROR: exception 'Illuminate'Contracts'Encryption'DecryptException' with message 'The MAC is invalid.' in D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'illuminate'encryption'BaseEncrypter.php:48
Stack trace:
#0 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'illuminate'encryption'Encrypter.php(96): Illuminate'Encryption'BaseEncrypter->getJsonPayload('eyJpdiI6InBFT2d...')
#1 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'illuminate'support'Facades'Facade.php(218): Illuminate'Encryption'Encrypter->decrypt('eyJpdiI6InBFT2d...')
#2 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'app'Models'TopupCode.php(114): Illuminate'Support'Facades'Facade::__callStatic('decrypt', Array)
#3 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'app'Models'TopupCode.php(114): Illuminate'Support'Facades'Crypt::decrypt('eyJpdiI6InBFT2d...')
#4 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'app'Engine.php(721): Ved'SmsGateway'Models'TopupCode->getCode()
#5 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'app'Console'Commands'TopUpForCriticalSimsCommand.php(57): Ved'SmsGateway'Engine::topupSim(Object(Ved'SmsGateway'Models'Sim), Object(Ved'SmsGateway'Models'TopupCode))
#6 [internal function]: Ved'SmsGateway'Console'Commands'TopUpForCriticalSimsCommand->handle()
#7 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'illuminate'container'Container.php(507): call_user_func_array(Array, Array)
#8 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'illuminate'console'Command.php(169): Illuminate'Container'Container->call(Array)
#9 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'symfony'console'Command'Command.php(256): Illuminate'Console'Command->execute(Object(Symfony'Component'Console'Input'ArgvInput), Object(Symfony'Component'Console'Output'ConsoleOutput))
#10 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'illuminate'console'Command.php(155): Symfony'Component'Console'Command'Command->run(Object(Symfony'Component'Console'Input'ArgvInput), Object(Symfony'Component'Console'Output'ConsoleOutput))
#11 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'symfony'console'Application.php(791): Illuminate'Console'Command->run(Object(Symfony'Component'Console'Input'ArgvInput), Object(Symfony'Component'Console'Output'ConsoleOutput))
#12 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'symfony'console'Application.php(186): Symfony'Component'Console'Application->doRunCommand(Object(Ved'SmsGateway'Console'Commands'TopUpForCriticalSimsCommand), Object(Symfony'Component'Console'Input'ArgvInput), Object(Symfony'Component'Console'Output'ConsoleOutput))
#13 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'symfony'console'Application.php(117): Symfony'Component'Console'Application->doRun(Object(Symfony'Component'Console'Input'ArgvInput), Object(Symfony'Component'Console'Output'ConsoleOutput))
#14 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'vendor'laravel'lumen-framework'src'Console'Kernel.php(69): Symfony'Component'Console'Application->run(Object(Symfony'Component'Console'Input'ArgvInput), Object(Symfony'Component'Console'Output'ConsoleOutput))
#15 D:'working-tools'xampp'htdocs'VedSmsGateway'source'sms_gateway'artisan(35): Laravel'Lumen'Console'Kernel->handle(Object(Symfony'Component'Console'Input'ArgvInput), Object(Symfony'Component'Console'Output'ConsoleOutput))
#16 {main}  

我试着:

composer dump-autoload
composer clear-cache

但没有成功

谁知道,请帮助,提前感谢

OK,所以我的项目包括2个较小的项目链接在一起(管理网站和api/后端)

问题是在api/后端配置/app.php中的key与管理站点不同。我已经改变了APP_KEY .env,现在一切都很好!