找不到支持的加密器。密码和/或密钥长度无效

时间:2015-12-14 19:39:56

标签: php encryption laravel-5.1

很多人都遇到了同样的问题。但是,我的问题在这里有所不同,这不是StackOverFlow上的任何重复问题。

我的Laravel 5.1应用程序在我的localhost上正常运行。但是,当我在生产服务器上设置它时,我得到的第一个错误是找不到支持的加密器。但是,如果我运行php artisan key:generate那么一切都很好。但这是我不想做的事情,因为其他人可能没有使用命令行界面的技能。因此,我在'cipher' => 'AES-256-CBC',中将MCRYPT_RIJNDAEL_128替换为config/app.php,解决了这个问题。但是,我不知道这样做的消极方式是什么。是否有任何建议要求我以标准方式实现我想要的目标?

1 个答案:

答案 0 :(得分:2)

需要手动调用php artisan key:generate的唯一时间是将此项目移动到新环境(例如开发服务器或生产服务器)。您必须这样做的原因是显示默认.gitignore文件的内容:

/vendor
/node_modules
.env

此项目推送到新环境的副本不会包含.env,其中包含密钥APP_KEY=YourRandomKey以及DB_PASSWORDMAIL_PASSWORD等。基本上所有你会保密的东西,并允许新环境管理员通过编辑 推送的.env.example文件进行配置。

如果您想将这些配置变量与项目的每个副本一起推送,您可以,但我强烈建议不要这样做。

如果您从.env文件中删除了.gitignore.env文件将被推送到您的存储库并包含在任何git clone项目中。

基本上,项目的每个副本都会有相同的APP_KEY变量,但它也会泄露您的DB_PASSWORD以及.env中的所有其他敏感数据。基本上,有一种方法可以实现您使用Laravel获得的安全级别,但为了实现这一点,您可以将该安全性抛到窗外......

希望这能提供一些见解。