業務で結構はまったのでメモしておく。
Laravelで、
Crypt::decrypt($argument);
する際に、復号化できない値を引数指定すると発生するようでした。
私の場合、結構特殊なケースだと思うのでもう少し書いておきます。
システムの作りは、
- DBに保存されている「パスワード」、「メールアドレス」は暗号化されている
- 暗号化されたデータを取得する際のModel定義に getアクセサ(getXXXXAttribute) が書かれており、そこに復号化処理が書かれている
この状況で、上記テーブルからfindするとパスワード、メールアドレスが復号化された状態で取得できる。(便利!)
しかし、このテーブル内に曲者が・・・
なんとパスワード、メールアドレスに、暗号化されていない開発中に作られたと思われるデータが数件存在し、
そのデータを復号したため、エラーが発生してしまったという訳でした。
他の人に迷惑をかけないように、ゴミデータはきちんと消そう!