美文网首页程序员
Sqlite3加密方案

Sqlite3加密方案

作者: 四明羽客 | 来源:发表于2016-04-07 16:07 被阅读655次

Sqlite3

开源版的Sqlite3是不支持加密功能的,对于一个保存在本地的数据库来说没有加密功能让人难以接受。所幸Sqlite3的作者留下了加密接口,而互联网上也有很多高人提供了他们的加密方案,其中有收费的,也有免费的。
这里选择了一个免费的加密方案SQLCipher,不过该方案没有直接提供编译好的库,只是提供了源代码,而且编译略麻烦,如果你不想自己编译,就只能花500美刀向作者购买编译好的库。吾辈屌丝只能望洋兴叹了,只能自己动手丰衣足食。

编译SQLCipher

在本项目中没有直接使用二进制库(lib或者dll),而是直接将源代码集成到项目中,毕竟sqlite3的源代码就只有一个.c文件和一个头文件。
SQLCipher提供了一个方法,用于将SQLCipher的加密代码加到sqlite3的源码上从而生成一个"联合文件(amalgamation file)",最后将生成的文件加到项目里就好了。

./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC"
make sqlite3.c

执行上述两个命令就能生成以下几个文件:

  • sqlite3.h
  • sqlite3.c
  • sqlite3ext.h
  • shell.c ——生成客户端工具的代码文件,我们用不到这个文件

以上命令都是在Ubuntu环境下执行的,Windows环境也能编译但需要额外安装MSYS2之类的*unix模拟器。

注意:
SQLCipher库的加密功能有openssl提供,所以首先编译环境需要安装openssl,Ubuntu已经默认安装了。
但编译SQLCipher还需要用到libssl-dev库,Ubuntu环境下可以用下面的命令安装

sudo apt-get install libssl-dev

另外,在将代码合入到工程中时,别忘了加上SQLITE_HAS_CODECSQLITE_TEMP_STORE=2这两个宏

遇到的错误

Q: 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
A: 工程中包含的sqlite3.c文件不需要stdafx.h预编译头,单独将sqlite3.c的预编译属性设置为“不使用预编译头”
参考: http://blog.csdn.net/chenlycly/article/details/18423359

相关文章

  • Sqlite3加密方案

    Sqlite3 开源版的Sqlite3是不支持加密功能的,对于一个保存在本地的数据库来说没有加密功能让人难以接受。...

  • DB那些事-数据库加密

    说到数据库加密,目前最好且唯一的方案就是SqlCipher对sqlite3整体加密,微信也用的它。开源,且支持很多...

  • Android DB那些事-数据库加密

    说到数据库加密,目前最好且唯一的方案就是SqlCipher对sqlite3整体加密,微信也用的它。开源,且支持很多...

  • npm安装sqlite3报错:MSBUILD : errojav

    npm安装sqlite3报错信息如下: 解决方案是:** cnpm install sqlite3**

  • sqlite3 加密

    https://github.com/utelle/wxsqlite3 提供了加密版的 sqlite,支持 pre...

  • SQLite3加密原理

    SQLite是一个进程库,实现了一个 自包含的, 无服务器, 零配置, 事务性 的SQL数据库引擎。SQLite是...

  • windows sqlite3加密(wxSqlite3)&GDA

    SQLite3加密 使用的是开源库wxsqlite3。没有自己做编译,直接从github上下载的release编译...

  • SVN无法清理,清理显示乱码解决方法

    更新SVN时提示要清理,但清理失败,乱码得解决方案 问题情况如图: 解决方案一: 第一步:下载sqlite3, 提...

  • 2022-10-11

    《微铂》 为安卓手机打造的信息加密解决方案,加密芯片助力通讯、数据安全。核心功能有:加密通话、加密聊天、加密会议、...

  • 阿里云加密服务使用教程

    加密服务 ( AliCloud Data Encryption Service ) 是云上的数据安全加密解决方案。...

网友评论

    本文标题:Sqlite3加密方案

    本文链接:https://www.haomeiwen.com/subject/mqamlttx.html