The only supported ciphers are AES-128-CBC and AES-256-CBCエラーにハマった
March 13, 2017
概要
Laravelで開発したアプリケーションを閲覧した際に「 The only supported ciphers are AES-128-CBC and AES-256-CBC」というエラーが表示され結構ハマってしまいました。本エラーの原因と解決方法をまとめます。
前提
- Laravel 5.4
原因
- このエラー文言は
Encrypterクラスから例外で送出されます。 supportedメソッドを見ると暗号化名と桁数が一致しないとfalseとなりこの問題が発生します。
- つまり
.envファイル内で指定した APP_KEYと config/app.phpの cipherで指定した暗号と桁数が一致していないのが原因です。
解決方法
確認すべきは以下です。
- .env 内で APP_KEY が指定されているか。指定されていなければ、php artisan key:generate を実行する
- APP_KEY を復号化して桁数を調べる
- もし16桁なら AES-128-CBC を、32桁ならAES-256-CBCを指定する
これで解決します。