日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用wxSqlite3来解决sqlite加密问题zz

發布時間:2025/7/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用wxSqlite3来解决sqlite加密问题zz 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

20141222更新:

最后還是沒用wxSQLite3,而是使用了SQLCipher,感覺SQLCipher的文檔寫得好一些,可以參考這兩個鏈接:http://www.cocoachina.com/industry/20140522/8517.html ,https://www.zetetic.net/sqlcipher/ios-tutorial/?

-------------------

這里介紹一個開源項目:wxSQLite3,該項目是一個 SQLite 的 C++ warpper,它順帶將 SQLite 的加密函數實現了,并且它使用 AES 算法進行加密。你可以在http://sourceforge.net/projects/wxcode/files/Components/下 載到最新的包,在目錄 \sqlite3\secure 下你可以找到一個 sqlite3.dll 文件,這個就是已編譯的帶加密的 SQLite 3 DLL 文件,而且 wxSQLite3 項目更新很快,你總是可以下載到較新的包。在最新的1.9.8版本中開始對256位AES加密進行實驗,估計不久的版本就可以穩定使用。

使用起來也很簡單,首先打開數據庫 sqlite3_open,然后在操作數據庫之前執行 sqlite3_key 后就可進行數據庫操作,否則會返回錯誤。

sqlite3_key是輸入密鑰,如果數據庫已加密必須先執行此函數并輸入正確密鑰才能進行操作,如果數據庫沒有加密,執行此函數后進行數據庫操作反而會出現“此數據庫已加密或不是一個數據庫文件”的錯誤。

int sqlite3_key( sqlite3 *db, const void *pKey, int nKey),db 是指定數據庫,pKey 是密鑰,nKey 是密鑰長度。例:sqlite3_key( db, “abc”, 3);

sqlite3_rekey 是變更密鑰或給沒有加密的數據庫添加密鑰或清空密鑰,變更密鑰或清空密鑰前必須先正確執行 sqlite3_key。在正確執行 sqlite3_rekey 之后在 sqlite3_close 關閉數據庫之前可以正常操作數據庫,不需要再執行 sqlite3_key。

int sqlite3_rekey( sqlite3 *db, const void *pKey, int nKey),參數同上。

清空密鑰為 sqlite3_rekey( db, NULL, 0)。

缺點:

嚴重依賴于wxWidgets C++ library。不利于發布,編譯、維護繁瑣。

參考:

android/ios SQLite數據庫sqlcipher加密解密技術-幾種解決方案分析比較wxSqlite3

轉載于:https://my.oschina.net/ioslighter/blog/359007

總結

以上是生活随笔為你收集整理的使用wxSqlite3来解决sqlite加密问题zz的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。