Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EncryptionServiceProvider.php第29行中出现运行时异常:未找到支持的加密程序。密码和/或密钥长度无效_Php_Laravel_Encryption_Heroku_Runtime - Fatal编程技术网

EncryptionServiceProvider.php第29行中出现运行时异常:未找到支持的加密程序。密码和/或密钥长度无效

EncryptionServiceProvider.php第29行中出现运行时异常:未找到支持的加密程序。密码和/或密钥长度无效,php,laravel,encryption,heroku,runtime,Php,Laravel,Encryption,Heroku,Runtime,请不要认为这是重复的 我已经看过了关于这个错误的每一篇文章,但没有一篇有效。我用Heroku来推,一点以前它工作得很好。 我已经使用“密码”=>“AES-256-CBC”使用256生成了密钥。 它在localhost中运行良好,但在我推它之后,在Heroku中就不行了。 我已经尝试了所有的解决方案,我不得不错过一些东西,这是令人沮丧的。我不明白的是,即使我正在生成密钥,但仍然。。。 请帮我找到一个修复此错误的方法。 另外,这是我得到的错误输出: in EncryptionServiceP

请不要认为这是重复的

我已经看过了关于这个错误的每一篇文章,但没有一篇有效。我用Heroku来推,一点以前它工作得很好。 我已经使用“密码”=>“AES-256-CBC”使用256生成了密钥。 它在localhost中运行良好,但在我推它之后,在Heroku中就不行了。 我已经尝试了所有的解决方案,我不得不错过一些东西,这是令人沮丧的。我不明白的是,即使我正在生成密钥,但仍然。。。 请帮我找到一个修复此错误的方法。 另外,这是我得到的错误输出:

    in EncryptionServiceProvider.php line 29
    at EncryptionServiceProvider->Illuminate\Encryption\{closure}(object(Application), array()) in Container.php line 734
    at Container->build(object(Closure), array()) in Container.php line 627
    at Container->make('encrypter', array()) in Application.php line 674
    at Application->make('encrypter') in Container.php line 838
    at Container->resolveClass(object(ReflectionParameter)) in Container.php line 801
    at Container->getDependencies(array(object(ReflectionParameter)), array()) in Container.php line 770
    at Container->build('Illuminate\Cookie\Middleware\EncryptCookies', array()) in Container.php line 627
    at Container->make('Illuminate\Cookie\Middleware\EncryptCookies', array()) in Application.php line 674


 at Application->make('Illuminate\Cookie\Middleware\EncryptCookies') in Pipeline.php line 123
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
    at CheckForMaintenanceMode->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102
    at Pipeline->then(object(Closure)) in Kernel.php line 122
    at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 87
    at Kernel->handle(object(Request)) in index.php line 53
Thanks

最可能的原因是在本地和Heroku之间安装了不同的加密库。有两个类似的底层加密库,openssl和mcrypt。这两个版本中的一个可能安装在本地,另一个安装在Heroku上。两者之间有一些区别,最明显的是mcrypt库具有Rijndael加密模式,而openssl具有AES。两者功能相同,但名称不同

我建议您优先使用openssl而不是mcrypt,因为它是最近维护的

php-m将显示安装了哪些模块


假设您安装了openssl,您应该使用AES-256-CBC模式,并且您将需要一个32字符的密钥(256位),不多也不少。

最可能的原因是您的本地和Heroku之间安装了不同的加密库。有两个类似的底层加密库,openssl和mcrypt。这两个版本中的一个可能安装在本地,另一个安装在Heroku上。两者之间有一些区别,最明显的是mcrypt库具有Rijndael加密模式,而openssl具有AES。两者功能相同,但名称不同

我建议您优先使用openssl而不是mcrypt,因为它是最近维护的

php-m将显示安装了哪些模块

假设您安装了openssl,您应该使用AES-256-CBC模式,并且您将需要一个32字符的密钥(256位),不多也不少。

您可以尝试运行

 php artisan key:generate
,并使用生成的密钥替换.env文件中的APP_密钥。

您可以尝试运行

 php artisan key:generate
,并使用生成的密钥替换.env文件中的APP_密钥。

只需使用命令 php artisan密钥:生成

并将其替换为laravel项目的APP_KEY in.env文件

它对我有效。

只需使用命令即可 php artisan密钥:生成

并将其替换为laravel项目的APP_KEY in.env文件


这对我很有效。

可能是重复的,没有代码。唯一的答案是错误消息。添加您的代码以及完整的错误信息。您是否设置了
MCRYPT_RIJNDAEL_128
MCRYPT_RIJNDAEL_256
,即设置块大小,而不是键大小。你用什么来表示一个键,她是什么?我已经用错误的全部输出编辑了我的帖子。另外,@limonte,我以前已经尝试过该解决方案,但它无法帮助复制,因为没有代码。唯一的答案是错误消息。添加您的代码以及完整的错误信息。您是否设置了
MCRYPT_RIJNDAEL_128
MCRYPT_RIJNDAEL_256
,即设置块大小,而不是键大小。你用什么来表示一个键,她是什么?我已经用错误的全部输出编辑了我的帖子。另外,@limonte,我以前已经尝试过该解决方案,但它没有帮助我不太确定如何检查,但我使用php-m检查过,我确实看到了openssl,而不是mcrypt,因此,我相信我使用的是openssl。此外,我使用的是AES-256-CBC。谢谢。我不太确定如何检查,但我用php-m检查过,我确实看到了openssl,而不是mcrypt,因此,我相信我使用的是openssl。此外,我使用的是AES-256-CBC。谢谢