摘要: 其實SQLite的兩個加密函數(shù)使用起來非常的簡單,下面分情況說明:
① 給一個未加密的數(shù)據(jù)庫添加密碼:如果想要添加密碼,則可以在打開數(shù)據(jù)庫文件之后,關(guān)閉數(shù)據(jù)庫文件之前的任何時刻調(diào)用sqlite3_key函數(shù)即可,該函數(shù)有三個參數(shù),其中第一個參數(shù)為數(shù)據(jù)庫對象,第二個參數(shù)是要設(shè)定的密碼,第三個是密碼的長度。例如:sqlite3_key(db,"1q2w3e4r",8); //給數(shù)據(jù)庫設(shè)定密碼1q2w3e4r
② 讀取一個加密數(shù)據(jù)庫中的數(shù)據(jù):完成這個任務(wù)依然十分簡單,你只需要在打開數(shù)據(jù)庫之后,再次調(diào)用一下sqlite3_key函數(shù)即可,例如,但數(shù)據(jù)庫密碼是123456時,你只需要在代碼中加入sqlite3_key(db,"123456",6);
① 更改數(shù)據(jù)庫密碼:首先你需要使用當(dāng)前的密碼正確的打開數(shù)據(jù)庫,之后你可以調(diào)用sqlite3_rekey(db,"112233",6) 來更改數(shù)據(jù)庫密碼。
② 刪除密碼:也就是把數(shù)據(jù)庫恢復(fù)到明文狀態(tài)。這時你仍然只需要調(diào)用sqlite3_
閱讀全文
posted @
2007-06-01 11:30 聶文龍 閱讀(8342) |
評論 (2) |
編輯 收藏
摘要: SQLite是一個很好用的嵌入式數(shù)據(jù)庫。可惜美中不足的是SQLite的免費版本不具備加密功能。曾經(jīng)在網(wǎng)上看到一個用WinCrypt實現(xiàn)加密功能的版本,但我不喜歡太依賴于Windows平臺。這幾日有時間,自己就用XXTEA算法在 SQLite3.3.7版本的基礎(chǔ)上實現(xiàn)了加密功能。選擇XXTEA主要是因為這個算法速度很快,對性能造成的影響相對較小。順便修改了網(wǎng)上流傳的XXTEA代碼的一處內(nèi)存越界的BUG。
用SQLite的一般是單機版軟件比較多,有加密需求的一定不少,所以現(xiàn)在放出源代碼與大家分享。代碼的工程文件是用VC2005,如果用其它編譯器,編譯的時候不要忘記加上SQLITE_HAS_CODEC宏。代碼只是粗略測試過,不保證100%無BUG和邏輯錯誤。
閱讀全文
posted @
2007-06-01 11:27 聶文龍 閱讀(6541) |
評論 (5) |
編輯 收藏
posted @
2007-06-01 10:53 聶文龍 閱讀(202) |
評論 (0) |
編輯 收藏
摘要: 1). 打開VC新建一個“Win32 Dynamic-Link Library”工程,命名為:sqlite3
2). 在接下來的對話框中選擇"An empty DLL project",點 FINISH->OK
3). 將源碼中所有的 *.c *.h *.def 復(fù)制到工程文件夾下
4). 在工程的Source File中添加你下載到的SQLite源文件中所有*.c文件,
注意這里不要添加shell.c和tclsqlite.c這兩個文件。
5). 將 SQLite 源文件中的 sqlite3.def 文件添加到在工程的Source File中
6). 在Header File中添加你下載到的SQLite源文件中所有*.h文件,
7). 開始編譯,Build(F7)一下
閱讀全文
posted @
2007-06-01 10:51 聶文龍 閱讀(1130) |
評論 (0) |
編輯 收藏