最近在做乙個winform的程式,考慮用sqlite的資料庫,小巧而實用,比access強多了,不過需要加密,不過free版本沒有實現加密,有一些c++的實現:比如: 和 。不過,鑑於我對c++不是很精通,於是就採用了ado.net 2.0 sqlite data provider 這樣可以直接利用它來建立乙個加密的sqlite資料庫。
有關c#**如下:
1、建立空的sqlite資料庫。
//資料庫名的字尾你可以直接指定,甚至沒有字尾都可以
//方法一:建立乙個空sqlite資料庫,用io的方式
filestream fs
=file.create(
"c:\\test.db
");
//方法二:用sqliteconnection
sqliteconnection.createfile(
"c:\\test.db
");
建立的資料庫是個0位元組的檔案。
2、建立加密的空sqlite資料庫
//建立乙個密碼為password的空的sqlite資料庫
sqliteconnection.createfile(
"c:\\test2.db
");
sqliteconnection cnn
=new
sqliteconnection(
"data source=c:\\test2.db
");
sqliteconnection cnn
=new
sqliteconnection(
"data source=d:\\test2.db
");
cnn.open();
cnn.changepassword(
"password");
3、給未加密的資料庫加密
sqliteconnection cnn
=new
sqliteconnection(
"data source=c:\\test.db
");
cnn.open();
cnn.changepassword(
"password");
4、開啟加密sqlite資料庫
//方法一
sqliteconnection cnn
=new
sqliteconnection(
"data source=c:\\test2.db");
cnn.setpassword("
password");
cnn.open();
//方法二
sqliteconnectionstringbuilder builder
=new
sqliteconnectionstringbuilder();
builder.datasource =
@"c:\test.db";
builder.password =
@"password";
sqliteconnection cnn =
newsqliteconnection(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資料庫加密
sqlite3加密支援 sqlite3免費版並不支援加密,不過留有介面,有不少開源的加密實現,不過有的需要使用openssl配置略顯繁瑣,不過使用wxsqlite比較方便。wxsqlite3 wxsqlite3是wxwidgets的擴充套件元件,對sqlite3的c api進行了封裝,並且實現了加解...
Sqlite資料庫的加密
sqlite資料庫的加密 1 建立空的sqlite資料庫。資料庫名的字尾你可以直接指定,甚至沒有字尾都可以 方法一 建立乙個空sqlite資料庫,用io的方式 filestream fs file.create c test.db 方法二 用sqliteconnection sqliteconnec...
Sqlite資料庫的加密
最近在做乙個winform的程式,考慮用sqlite的資料庫,小巧而實用,比access強多了,不過需要加密,不過free版本沒有實現加密,有一些c 的實現 比如 和 不過,鑑於我對c 不是很精通,於是就採用了ado.net 2.0 sqlite data provider 這樣可以直接利用它來建立...