DBを作る上で必ず悩んでしまう問題。 もし、もし、仮にDBからレコードのデータを全部ぶっこぬかれた場合、そこに個人情報が載っかってると非常にマズイ。 だから、もし、もし、仮にDBからレコードをぶっこぬかれても、データとして意味が内容に、暗号化しておけないか・・と。 DBに格納されている時は暗号化されておいて、スクリプトから取り出した時点で、復元されているという感じ。 MD5やCRYPTは、一方通行なため、暗号化する前のデータがわかってなければ使えない。 どうしたらいいものかと調べたので、結果をここにまとめる。 環境:MySQL 4.0.2以降 phoneというカラムがあり、これを暗号化する。 INSERT INTO test( phone ) VALUES ( AES_ENCRYPT( '0120-000-1234', 'secret_key' ) )