zoukankan      html  css  js  c++  java
  • 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数据库,无法使用第三方工具打开;

  • 相关阅读:
    【AS3代码】小游戏打飞机源代码
    【AS3代码】键盘的输入和输出
    PHP多维数组排序
    【AS3代码】一个完整的游戏框架
    【AS3代码】小画板升级版(带重绘回放和清空功能)
    Liunx命令工作总结(1)
    Java NIO基础 我们到底能走多远系列(17)
    ibatis 一对多 解决方案
    图片上传+预览+剪切解决方案我们到底能走多远系列(20)
    Liunx命令工作总结(2)
  • 原文地址:https://www.cnblogs.com/leehongee/p/4094700.html
Copyright © 2011-2022 走看看