專案中需要將sqlite資料庫檔案加密,網上了一下,參考豆子大神的部落格原部落格位址,可以滿足需求,將使用方法記錄一下:
將sqlitecipher資料夾中的原始碼編譯生成dll,將外掛程式放入外掛程式的sqldrivers資料夾下,其中sqlitecipher.dll為release版本,sqlitecipherd.dll為debug版本
參考原博文的方法可以完成除錯
過程中遇到資料庫開啟失敗的問題,`
qsqlerror("-1", 「cannot create password. maybe it is encrypted?」, 「not an error」)`原因分析:qsqlerror(「26」, 「unable to execute statement」, 「file is not a database」)
db.setpassword(「psw」);作用:資料庫檔案沒有密碼的時候,配合db.setconnectoptions(「qsqlite_create_key」);為資料庫檔案新增密碼,當資料庫檔案有密碼的時候,單獨用db.setpassword(「psw」);使用密碼開啟資料庫。
總結:我們為資料庫加密一般都在建立的時候加密,故建立的時候db.setpassword(「psw」);設定密碼,db.setconnectoptions(「qsqlite_create_key」);建立為其密碼;
呼叫資料庫時不要出現db.setconnectoptions(「qsqlite_create_key」);,另外注意db.close()操作。
後續發現每次新生成資料庫檔案時仍然會讀取錯誤,解決辦法是將db.setconnectoptions(「qsqlite_create_key」);直接改為設定加密方式
Qt sqlite 資料庫的使用
sqlite sql 是一款開源輕量級的資料庫軟體,不需要server,可以整合在其他軟體中,非常適合嵌入式系統。qt5以上版本可以直接使用sqlite。修改.pro檔案,新增sql qt sql新增標頭檔案 include qsqldatabase include qsqlquery includ...
QT SQLite 多資料庫操作大全
一般qt都是把開啟乙個預設資料庫連線,操作乙個資料庫連線,但是對sqlite中頻率修改容易加鎖,因此有一種設計模式是把頻率修改的表放在不同的資料庫檔案中,但這樣要修改 運算元據庫部分 通常開啟 bool databasemanager opendb qsqlerror databasemanager...
Android 資料庫加密 SQL加密
android資料儲存之sqlite的介紹及使用 以及contentprovider程式間資料共享 android探索之contentprovider熟悉而又陌生的元件 我們清晰的知道sqlite資料庫預設存放位置 data data pakage database目錄下,對於已經root的手機來說...