IOS 使用wxsqlite3為sqlite3資料庫加密

來源:互聯網
上載者:User

標籤:

1,下載wxsqlite3 地址http://jaist.dl.sourceforge.net/project/wxcode/Components/wxSQLite3/wxsqlite3-3.1.1.zip

  註:頁面下載不了,可以複製地址使用迅雷下載


2,解壓後找到wxsqlite3-3.1.1\sqlite3\secure\src 複製所有檔案到IOS項目中,移除除sqlite3.h和sqlite3secure外的檔案引用

3,匯入標頭檔

4,進行開啟資料庫時,使用程式sqlite3_key(db,"********",8);

 

5,SQLite3的加密函數說明
  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)。

  其實SQLite的兩個加密函數使用起來非常的簡單,下面分情況說明:

  1、 給一個未加密的資料庫添加密碼:如果想要添加密碼,則可以在開啟資料庫檔案之後,關閉資料庫檔案之前的任何時刻調用sqlite3_key函數即可,該函數有三個參數,其中第一個參數為資料庫物件,第二個    參數是要設定的密碼,第三個是密碼的長度。例如:sqlite3_key(db,"1q2w3e4r",8);        //給資料庫設定密碼1q2w3e4r

    註:如果資料庫沒有加密,執行此函數後進行資料庫操作反而會出現“此資料庫已加密或不是一個資料庫檔案”的錯誤?經測試,只能在建立資料庫時設定密碼!

  2、 讀取一個加密資料庫中的資料:完成這個任務依然十分簡單,你只需要在開啟資料庫之後,再次調用一下sqlite3_key函數即可,例如,但資料庫密碼是123456時,你只需要在代碼中加入            sqlite3_key(db,"123456",6);
  3、 更改資料庫密碼:首先你需要使用當前的密碼正確的開啟資料庫,之後你可以調用sqlite3_rekey(db,"112233",6) 來更改資料庫密碼。

  4、刪除密碼:也就是把資料庫恢複到明文狀態。這時你仍然只需要調用sqlite3_rekey函數,並且把該函數的第二個參數置為NULL或者"",或者把第三個參數設為0。

 

 6,Demo下載(demo忘記寫關閉資料庫連接,請注意)

wxsqlite3包; Demo

 

IOS 使用wxsqlite3為sqlite3資料庫加密

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.