Visual Studio 2010环境下Sqlite3加密版(由wxSqlite制作)使用方法

Sqlite3是著名的嵌入式数据库,应用之广就不多说了。本篇主要介绍如何使用加密功能。Sqlite3本身提供了加密的接口,但是加密功能并没有实现,用户要使用的话需要自己编写代码来实现加密功能。幸运的是,另一个开源工程wxSqlite(对Sqlite做的一个包装)实现了Sqlite3的加密模块,并且Sqlite3部分可以单独下载。下载地址:http://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/下载后在压缩包内可以看到wxsqlite[版本号]\sqlite3目录。

要使用的话,只要:

1. 在新建一个C++工程(托管、非托管皆可)

2. 将include文件夹下的sqlite3.h拷贝到工程根目录下

3. 将secure\aes128(或secure\aes256)目录下的sqlite3.dll和sqlite3.lib拷贝到工程根目录下

4. 在工程中添加sqlite3.h,并在其最前面添加代码:

#ifndef SQLITE_HAS_CODEC

#define SQLITE_HAS_CODEC

#endif

5. 在工程名下右键,选择属性->linker->input->AdditionalDependencies中打开下拉菜单,选择Edit,输入sqlite3.lib后确定

6. 别忘了将sqlite3.dll拷贝到最终程序运行位置。

以上主要是做了两个工作:

1. 添加对sqlite3的引用(包括.h文件和.lib文件设置)

2. 启用加密功能,即添加SQLITE_HAS_CODEC预编译命令

有了加密功能之后,在代码里面使用就简单多了(关于引用sqlite3.h就不多说了)。在成功打开数据库之后(比如运行sqlite3_open之后),使用如下运行如下函数即可:

int result = sqlite3_key( db, "pwd", 3 ); //添加、使用密码

result = sqlite3_rekey( db, "sqlite3", 7 ); //修改密码

这两个函数的参数是一样的:

参数1:数据库指针(sqlite3*),就是打开数据库时得到的那个。

参数2:密码

参数3:密码长度

值得注意的是:

1. 在没有加密的数据库上面,可以直接使用sqlite3_key对其进行加密。

2. 如果数据库已经加密,打开数据库后需要首先运行sqlite3_key解密数据库,才能正常进行其他操作(包括修改密码),否则将会得到SQLITE_NOTADB返回值,错误提示:”file is encrypted or is not a database”。

在使用加密之后,sqlite3的数据库文件就不再是明文了。

 

PS:原文地址:http://blog.csdn.net/felomeng/article/details/6918129

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值