hypermkt blog

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を指定する

これで解決します。

参考


都内で働くWebアプリケーションエンジニア。主にサーバーサイド。最近はRuby/Railsでコードを書くのが楽しい。