cakephp plugin CryptoDbをgithubで公開しました

github / ninton / cakephp.CryptoDb

特徴
1) 平文と暗号キーがMySQL binlogに残りません。

2) ivを毎回生成します。そのため同じ平文、同じキーで暗号化しても同じ結果になりません。
(暗号データにivを含んでいます)

—————————————-
設定手順
—————————————-
YourModel.messageを暗号化してDB保存したい場合

1) edit App/Config/bootstrap.php

2) create plugins/CryptDb/Config/bootstrap.php

plugins/CryptDb/Config/bootstrap.sample.phpも参照してください。

*注意*
サービスを開始したら、暗号キーを変更してはいけません。
古いキーで暗号化したフィールドは、新しいキーで復号できません。

3) edit App/Model/YourModel.php

App::uses()、extends Crypto、$cryptoFieldsの3点を編集してください。

4) call save() and find()

暗号/復号処理を記述する必要はありません。

phpMyAdmin (or mysql command) で直接データベースを見ると、暗号化されています。
–> ‘a:4:{s:4:”algo”;s:12:”rijndael-256″;s:4:”mode”;s:3:”cbc”;s:2:”iv”;s:44:”56…’

—————————————-
CakeTest fixture
—————————————-
CakeTestのfixtureには、暗号化したデータを記述してください。
記述したとおりにINSERTされます。

—————————————-
暗号化せずに、saveする方法
—————————————-
save()ではなく、saveAll()を使います。

—————————————-
復号せずに、findする方法
—————————————-