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