テーブルのあるカラムが、AES_ENCRYPT()
で暗号化された値をblobで保存されています。
Insert時はSQL文でAES_ENCRYPT()
し、
Select時はSQL文でAES_DECRYPT()
する必要があります。
アクセサ/ミューテタを調べた結果、
Insert時は、ミューテタを設定することで解決できました。
ただ、Select時(find()等)のアクセサについては、
SQL発行後に処理がおこなわれるため、望む結果は得られません。
なにか良い方法がありましたら教えて下さい。
現在はSQLを発行する度にrawでSQL文を書いています。
これを、modelの設定等で、自動でおこなうようにしたいです。
- 鍵の長さの都合上、PHP上でのEncrypt/Decryptはできません。
- 既存sysとの連携のため、DBの設計変更はできません。
- セキュリティ上、MySQL上にストアド/VIEW等を用意しておくことはできません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。