wxSqlite3で暗号化 sqlite3をセキュアに利用する

環境 Centos6


wsqlite3をダウンロードして解凍後コンパイルする。
https://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/

cd [wxSqlite3 dir]/sqlite3/secure/src/

gcc -o sqlite3 -DSQLITE_HAS_CODEC=1 -DSQLITE_USER_AUTHENTICATION=0 shell.c sqlite3secure.c -ldl -lpthread

使い方

./sqlite3  test.db

>PRAGMA KEY='passcode';  # 最初にパスコードを指定する
>create table test(a,b);
>insert into test(a,b)values(1,2);
>select * from test;
>1|2
>.q # 終了

./sqlite3 test.db 
># パスコードを指定しない
>select * from test;
>Error: file is encrypted or is not a database
>.q #終了

./sqlite3 test.db
>PRAGMA KEY='passcode'; #  最初にパスコードを指定する
>select * from test;
>1|2
>.q #終了

これを利用するとcocos2d-xでwxsqlite3を利用するときに、外部でwxsqlite3を暗号化したデータベースを読み込ませることができる。