Cocos2dx使用wxsqlite开源加密SQLite3数据库
最近使用wxsqlite加密sqlite3数据库,刚开始折腾好几天,在xcode上一直编译不通过,后来在sqlite3.c找到配置,编译顺利通过,太激动了,哈哈,废话少说!总结一下android和ios平台。
wxsqlite3
wxSqlite3作为wxWidgets的扩展组件用C++语法对Sqlite3的API进行了封装,为Sqlite3的使用提供了方便,并顺带实现了加密。wxWidgets是一个著名的C++跨平台UI框架。支持两种加密算法,128位的rijndael算法(默认)和256位的AES算法。下载:http://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/
解压wxSqlite3压缩包,找到sqlite3/secure/src文件夹的文件复制到external/sqlite3/include目录下,并且只需编译sqlite3secure.c文件。
-->启用宏
需要在sqlite3secure.c最上面添加宏,启用加密
#define SQLITE_HAS_CODEC
//启用256位加密,如果不启用,可不加
#define CODEC_TYPE CODEC_TYPE_AES256
在sqlite3.h和sqlite3.c最上面添加
#define SQLITE_HAS_CODEC
Android支持
1.在external/sqlite3目录下新建一个Android.mk文件
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := wxsqlite3_static LOCAL_MODULE_FILENAME := libwxsqlite3 LOCAL_CFLAGS := \
-DSQLITE_HAS_CODEC \
-DCODEC_TYPE=CODEC_TYPE_AES128 LOCAL_SRC_FILES := \
include/sqlite3secure.c LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) LOCAL_C_INCLUDES := $(LOCAL_PATH) include $(BUILD_STATIC_LIBRARY)
在项目的Android.mk文件中添加支持
LOCAL_WHOLE_STATIC_LIBRARIES += wxsqlite3_static
LOCAL_SRC_FILES :=../../Classes/modules/SQLite3/sqlite3secure.c
$(call import-module,external/sqlite3)
iOS支持
添加代码目录,找到我们刚才添加的那个文件夹,添加好后,将除sqlite3.h和sqlite3secure.c的所有文件都删除引用
相关api函数接口
SQLite添加了加密解密功能后,使用方法如下:
1、 在调用sqlite3_open()函数打开数据库后,要调用sqlite3_key()函数为数据库设置密码;
2、 如果数据库之前有密码,则调用sqlite3_key()函数设置正确密码才能正常工作;
3、 如果一个数据库之前没有密码,且已经有数据,则不能再为其设置密码;
4、 如果要修改密码,则需要在第一步操作后,调用sqlite3_rekey()函数设置新的密码;
5、 设置了密码的SQLite数据库,无法使用第三方工具打开;
Cocos2dx使用wxsqlite开源加密SQLite3数据库的更多相关文章
- 加密sqlite3数据库文件
目录 EncryptSqlite3 实现原理 使用方法 不足之处 GitHub地址 EncryptSqlite3 加密sqlite3数据库,产生的数据库文件别人打不开. 实现原理 在写入文件前对每个字 ...
- IOS 使用wxsqlite3为sqlite3数据库加密
1,下载wxsqlite3 地址http://jaist.dl.sourceforge.net/project/wxcode/Components/wxSQLite3/wxsqlite3-3.1.1. ...
- [Android]AndroidInject增加sqlite3数据库映射注解(ORM)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3623050.html AndroidInject项目是我写的一 ...
- DotNet 资源大全中文版,内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等
DotNet 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-dotnet 是由 quozd 发起和维护.内容包括:编译器. ...
- Cocos移植到Android的一些问题-SQLite3数据库移植问题
首选我们讨论一下SQLite3数据库移植问题.我们在第14章节介绍了在Win32平台使用SQLite3数据库,我们介绍了两种配置环境的方法:一种是使用Cocos2d-x提供的SQLite3库配置,另一 ...
- python sqlite3 数据库操作
python sqlite3 数据库操作 SQLite3是python的内置模块,是一款非常小巧的嵌入式开源数据库软件. 1. 导入Python SQLite数据库模块 import sqlite3 ...
- 安卓使用SQlite3数据库无法id主键无法自动增加?不是的。
安卓使用SQlite3数据库无法id主键无法自动增加?不是的. 要这样写:id integer primary key ,要写integer而不是int所以会报错! http://blog.csdn. ...
- 【转】去掉Sqlite3 数据库中的前后回车换行符(newline)
原文: http://www.blogjava.net/pts/archive/2013/06/10/400... 时间: 2013-06-10 转自:http://www.ityuedu.com/a ...
- 《全唐诗》的sqlite3数据库
下载地址: http://pan.baidu.com/s/1b2mE54quantangshi.db是sqlite3数据库,包括2张表.index表:volume 列(整数,主键) 表示卷号,从1到9 ...
随机推荐
- JSHint 使用说明
SHint介绍 翻译自www.jshint.comJSHint(注意不是jslint:))是一个由javascript社区驱动开发的用于检查javascript代码错误和问题的工具,有了他,可以使你保 ...
- [Leetcode][JAVA] Populating Next Right Pointers in Each Node II
Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...
- .NET Socket TCP 50W在线连接交互测试
在平常的交流中经常有人问.net socket能支持多少在线?和C++或linux下比起来应该差很远吧?其实产生这样问题的主要原因是.net很少人去做这方面的测试,而在linux下则经常听到什么100 ...
- C#手动做一个负载均衡服务器
思路 负载均衡服务器最出名的当数 Nginx了.Nginx服务器通过异步的方式把连接转发给内网和N个服务器,用来分解单台应用服务器的压力,了解了原理及场景后,用C#来实现一个.思路如下: 1. 使用一 ...
- [ACM_模拟] POJ 1094 Sorting It All Out (拓扑排序+Floyd算法 判断关系是否矛盾或统一)
Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...
- [51单片机] nRF24L01 无线模块 测试 按键-灯-远程控制
哈哈,穷吊死一个,自己做的一个超简单的板还没有电源提供,只得借助我的大开发板啦.其实这2个模块是完全可以分开的,无线嘛,你懂得!进入正题,这个实验的功能就是一个发送模块(大的那个板)连接4个按键,通过 ...
- [Java Web] 2、Web开发中的一些架构
1.企业开发架构: 企业平台开发大量采用B/S开发模式,不管采用何种动态Web实现手段,其操作形式都是一样的,其核心操作的大部分都是围绕着数据库进行的.但是如果使用编程语言进行数据库开发,要涉及很多诸 ...
- Javascript日期与C# DateTime 转换
DateTime的日期到了客户端为:"/Date(1346818058450+0800)/"; 转吧: var renderTime = function (dateTime) { ...
- SQL Server 2014 安装小记
一.写在前面 由于想体验下微软的Windows Azure在SQL Server数据库方面的使用,笔者花了点时间安装了一下SQL Server 2014,安装很简单,基本就是稍微做些配置即可,笔者在此 ...
- ActiveMQ第一弹:安装与运行
ActiveMQ使用java写的,所以天然跨平台,windows,各种类Unix系统都可运行,只需要下载对应的分发包即可.当前AciveMQ的最新版本是5.9.0.我目前在自己机子上安装的版本是5.8 ...