SQLite加密的方法(c )

2021-09-08 01:23:11 字數 1743 閱讀 5074

設定下密碼就可以了

編譯為靜態庫,並具備加密功能?

cppsqlite3u

最近在做乙個winform的程式,考慮用sqlite的資料庫,小巧而實用,比access強多了,不過需要加密,不過free版本沒有實現加密,有一些c++的實現:比如: 和 。不過,鑑於我對c++不是很精通,於是就採用了ado.net 2.0 sqlite data provider 這樣可以直接利用它來建立乙個加密的sqlite資料庫。

有關c#**如下:

1、建立空的sqlite資料庫。

//資料庫名的字尾你可以直接指定,甚至沒有字尾都可以

//方法一:建立乙個空sqlite資料庫,用io的方式

filestream fs = file.create("c:");

//方法二:用sqliteconnection

sqliteconnection.createfile("c:");

建立的資料庫是個0位元組的檔案。

2、建立加密的空sqlite資料庫

//建立乙個密碼為password的空的sqlite資料庫

sqliteconnection.createfile("c:");               

sqliteconnection cnn = new sqliteconnection("data source=c:");

sqliteconnection cnn = new sqliteconnection("data source=d:");

cnn.open();

cnn.changepassword("password");

3、給未加密的資料庫加密

sqliteconnection cnn = new sqliteconnection("data source=c:");

cnn.open();

cnn.changepassword("password");

4、開啟加密sqlite資料庫

//方法一

sqliteconnection cnn = new sqliteconnection("data source=c:");

cnn.setpassword("password");

cnn.open();

//方法二

sqliteconnectionstringbuilder builder = new sqliteconnectionstringbuilder();

builder.datasource = @"c:/test.db";

builder.password = @"password";

sqliteconnection cnn = new sqliteconnection(builder.connectionstring);

cnn .open();

注:a、因為加密的函式是利用windows api,故加密後的資料庫只能適用在windows平台,加密的方式是整體檔案加密。

b、加密的演算法是rc4,如果你想採用別的加密演算法來加密,請參考ado.net 2.0 sqlite data provider 的原始碼來修改。

c、相關sqlite資料庫操作類似ado.net 2.0。詳見ado.net 2.0 sqlite data provider的幫助文件。

c、ado.net 2.0 sqlite data provider 版本為:1.0.53.0 ,sqlite版本 : 3.6.0。

d、開發環境為vs2008。

有關sqlite的中文介紹,你可以看看這裡:

關於sqlite 加密

在移動裝置上,不管是ios還是android大家都喜歡使用sqlite,它體積小功能卻不錯,滿足大家的需求。但是使用過大家都清楚免費版sqlite資料是明文的,如果存放的是使用者敏感資訊,只要取出應用中的資料庫,神馬使用者名稱,密碼都一目了然。那麼你還敢使用手機登入什麼網銀神馬的麼?使用免費版本的沒...

C 使用sqlite的方法

windows下sqlite的使用 2.編譯生成lib檔案 將sqlite3.h 在sqlite amalgamation 3071300.zip壓縮包中 新增到工程。sqlite3.lib複製到工程資料夾下。工程屬性中新增sqlite3.lib庫依賴。3.建立win32工程 如下 本程式測試sql...

Sqlite資料庫的加密

最近在做乙個winform的程式,考慮用sqlite的資料庫,小巧而實用,比access強多了,不過需要加密,不過free版本沒有實現加密,有一些c 的實現 比如 和 不過,鑑於我對c 不是很精通,於是就採用了ado.net 2.0 sqlite data provider 這樣可以直接利用它來建立...