【資料庫】SQLITE3 加密4

來源:互聯網
上載者:User
sqlite3_open 成功了,緊接著寫下面的代碼:

複製內容到剪貼簿

代碼:

   int i;

//添加、使用密碼   

   i =   sqlite3_key( db, "dcg", 3 );

   //修改密碼

   i =   sqlite3_rekey( db, "dcg", 0 );

用 sqlite3_key 函數來提交密碼。, K% Y, ^9 x* W& F1 l/ }% V

: g, q! C( Z+ h( k5 }# j& I第1個參數是 sqlite3 * 類型變數,代表著用 sqlite3_open 開啟的資料庫(或建立資料庫)。
8 k+ p& @& R1 _( j# v+ p
3 c9 [* R' n/ N, f第2個參數是密鑰。5 v0 Y. O& V& T3 y3 f; O; E8 R

- A9 V. h5 @/ w第3個參數是密鑰長度。$ t0 h1 S( v' V% y7 n, ~/ h# ~( E

( j/ [- n4 y' u2 G! ]8 u% j4 d/ {用 sqlite3_rekey 來修改密碼。參數含義同 sqlite3_key。
; {/ O; I. s; ~# p0 A4 J
( ]0 A& W/ R% n6 W 0 ?/ i* d( Y- t9 b/ Z+ \. N
# A   D1 j2 s4 U4 P
實際上,你可以在sqlite3_open函數之後,到 sqlite3_close 函數之前任意位置調用 sqlite3_key 來設定密碼。
4 `6 |; V: P9 s' S
3 H   c% J: s! ?0 S( K   H- ]但是如果你沒有設定密碼,而資料庫之前是有密碼的,那麼你做任何操作都會得到一個傳回值:SQLITE_NOTADB,並且得到錯誤提示:“file is encrypted or is not a database”。
# i   ~# C% M9 @2 w( O" A, M' ~2 u$ H/ F% ]
只有當你用 sqlite3_key 設定了正確的密碼,資料庫才會正常工作。
) L' {" p' a* h/ d% ^* F! f$ g
* {" m) {& ]; y' o如果你要修改密碼,前提是你必須先 sqlite3_open 開啟資料庫成功,然後 sqlite3_key 設定密鑰成功,之後才能用 sqlite3_rekey 來修改密碼。
# H, u4 C) J- T% t
: d( l3 I. [. Y如果資料庫有密碼,但你沒有用 sqlite3_key 設定密碼,那麼當你嘗試用 sqlite3_rekey 來修改密碼時會得到 SQLITE_NOTADB 傳回值。
. n: V' ^, J% }4 M) L) m4 I
6 L' E1 i7 K* p. [9 n. J如果你需要清空密碼,可以使用:

複製內容到剪貼簿

代碼:

//修改密碼

   i =   sqlite3_rekey( db, NULL, 0 );

來完成密碼清空功能。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.