データ
- 暗号化するデータは「tinyblob(255文字)」か「blob(6万文字)」などのバイナリ型を利用。
- 記録バイト数は、暗号化前のバイト数+1を16の倍数に切り上げたバイト数。
暗号化処理
AES_ENCRYPT(データ,パスワード)を利用する。
SQLでのデータ登録例
insert into テーブル名 (data1,data2) values (AES_ENCRYPT('データ1','passwd'),AES_ENCRYPT('データ2','passwd'))
PHPからデータを登録する例
$conn = mysql_connect(SERVER_NAME,SERVER_USER,SERVER_PASSWORD); if ($conn === FALSAE) die("connect error."); $res = mysql_select_db(DATABASE_NAME); if ($res === FALSE) die("select db error."); $query = "insert into テーブル名 (data1,data2) values ("; $query .= " AES_ENCRYPT('データ1','passwd')"; $query .= ",AES_ENCRYPT('データ2','passwd'))"; $res = mysql_query($query); if ($res === FALSE) die("insert error."); mysql_close($conn);
SQLでのデータ更新
update テーブル名 set data1=AES_ENCRYPT('データ1','passwd'),data2=AES_ENCRYPT('データ2','passwd')
複合化処理
AES_DECRYPT(データ名,パスワード)を利用する。