博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sqlite数据库的加密
阅读量:7142 次
发布时间:2019-06-29

本文共 1498 字,大约阅读时间需要 4 分钟。

最近在做一个winform的程序,考虑用的数据库,小巧而实用,比Access强多了,不过需要加密,不过free版本没有实现加密,有一些c++的实现:比如:和 。不过,鉴于我对c++不是很精通,于是就采用了这样可以直接利用它来创建一个。

有关c#代码如下:

1、创建空的sqlite数据库。

 

[csharp] 
 
  1. //数据库名的后缀你可以直接指定,甚至没有后缀都可以  
  2. //方法一:创建一个空sqlite数据库,用IO的方式  
  3. FileStream fs = File.Create(“c:\\test.db“);  
  4. //方法二:用SQLiteConnection  
  5. SQLiteConnection.CreateFile(“c:\\test.db“);  

 

 

创建的数据库是个0字节的文件。

2、创建加密的空sqlite数据库

[csharp] 
 
  1. //创建一个密码为password的空的sqlite数据库  
  2. SQLiteConnection.CreateFile(“c:\\test2.db“);                  
  3. SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2.db“);  
  4.  SQLiteConnection cnn = new SQLiteConnection(“Data Source=D:\\test2.db“);  
  5. cnn.Open();  
  6. cnn.ChangePassword(“password“);  

3、给未加密的数据库加密

 

[csharp] 
 
  1. SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test.db“);  
  2. cnn.Open();  
  3. cnn.ChangePassword(“password“);  

4、打开加密sqlite数据库

 

 

[csharp] 
 
  1. //方法一  
  2. SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2.db“);  
  3. cnn.SetPassword(“password“);  
  4. cnn.Open();  
  5. //方法二  
  6. SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder();  
  7.  builder.DataSource = @”c:\test.db“;  
  8. builder.Password = @”password“;  
  9. SQLiteConnection cnn = new SQLiteConnection(builder.ConnectionString);  
  10. cnn .Open();  

注意:

 

A、因为加密的函数是利用windows api,故加密后的数据库只能适用在windows平台,加密的方式是整体文件加密。

B、加密的算法是,如果你想采用别的加密算法来加密,请参考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。

ADO.NET 2.0 SQLite Data Provider的下载地址:

有关sqlite的中文介绍,你可以看看这里:

转自:

转载地址:http://nxgrl.baihongyu.com/

你可能感兴趣的文章
我要做 Android 之Fragment
查看>>
有关 Windows Lite 的一切,只为对抗 Chrome OS?
查看>>
Android 自定义控件之SlidingMenuVertical顶部悬浮(垂直折叠抽屉,有滑动渐变回调,可自行添加渐变动画)...
查看>>
NG-ZORRO 7.0.1 发布,Ant Design 的 Angular 实现
查看>>
Django 2.0 model on_delete错误小记
查看>>
ffmpeg中的sws_scale算法性能测试
查看>>
Groovy 处理JSON
查看>>
JEESZ分布式框架简介
查看>>
scala笔记(三)
查看>>
java线程池的原理学习(三)
查看>>
自己编写jQuery插件 之 无缝滚动
查看>>
Java笔记-Comparable 和 Comparator比较
查看>>
小米组织架构巨变的背后,是雷军战争思维的映射
查看>>
不满公司袒护男高管,谷歌 200 女工程师发起罢工运动
查看>>
快速上手物联网解决方案(5)—— DataV
查看>>
Apache NetBeans 11.0 正式发布,支持 Java 12
查看>>
解决拦截器对ajax请求的的拦截
查看>>
View的三次measure,两次layout和一次draw
查看>>
PostgreSQL流复制热备
查看>>
行业看点 | 超高性能量子计算机现身,成解析复杂算法大杀器
查看>>