SQLite加密
SQLiteCrypt API SQLiteCrypt is very easy to use. SQLiteCrypt is based on SQLite with all API functions remain unchanged. All encryption/ decryption routines are performed transparently. SQLiteCrypt uses three PRAGMA statements to work with encrypted database: PRAGMA key = 'the passphrase'// passphrase PRAGMA rekey = 'new passphrase'// change passphrase PRAGMA lic = 'the license key'//the software key The first PRAGMA statement is used to create/ access encrypted database. The second one will re-write database with new passphrase. The third one used to identify legal copy of SQLiteCrypt software. Remark: Do not userekey in middle of a transaction. This method decrypt whole database using old passphrase,then encrypt using new passphrase. You can continue to use SQLite API functions,no need of closing and re-opening database. This is time-consuming operation. Example 1: Create/ open encrypted SQLite database sqlite3_open_v2("data.db",&db,SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,NULL); sqlite3_stmt* stm; intres; res = sqlite3_prepare(db,"PRAGMA key = 'ac23';",-1,&stm,&pzTail);//ac23 is database passphrase res = sqlite3_prepare(db,"PRAGMA lic = '77523-009-0000007-72328';",&pzTail);//software license key //now you have all access to data.db Example 2: Decrypt SQLite database (remove encryption,so any other SQLite application can open it) sqlite3_open_v2("data.db",NULL); sqlite3_stmt* stm; intres; res = sqlite3_prepare(db,&pzTail);//ac23 is current passphrase res = sqlite3_prepare(db,&pzTail);//software license key //now you have all access to encrypted data.db res = sqlite3_prepare(db,"PRAGMA rekey = '';",&pzTail);// new empty passphrase //now data.db is NOT encrypted Example 3: Change encryption key on-the-fly sqlite3_open_v2("data.db",NULL); sqlite3_stmt* stm; intres; res = sqlite3_prepare(db,"PRAGMA rekey = 'abc123';",&pzTail);//abc123 is new passphrase //now data.db re-written using new passphrase Example 4: Encrypt SQLite database (add encryption to regular SQLite database) sqlite3_open_v2("data.db",&pzTail);//software license key //now you have all access to regular data.db res = sqlite3_prepare(db,&pzTail);// encrypt database using abc123 passphrase //now data.db is encrypted Example 5: Using SQLiteCrypt command line tool Opening encrypted db without passphrase: D:&;sqlite.exe data.db SQLite version 3.7.15.2 2013-01-09 11:53:05 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> select * from _MapPropertyA; Error: file is encrypted or is not a database Querry on an encrypted database (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |