简介
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
继续阅读 »
Linux tcpdump命令详解
C++下使用加密版本SQLITE
SQLITE支持跨平台、跨语言,是做桌面产品比较合适的轻量级开源文件数据库,最新版本是3.7.15,下载位置:http://www.sqlite.org/sqlite-amalgamation-3071500.zip,非商业版本不提供加密功能,但有相应的第三方开源类库已经实现了加密功能。通常的方案是在C++下使用加密SQLITE库,.NET语言使用时进行封装,.NET下的SQLITE加密方式是不兼容的。
wxSQLite3除了封装SQLITE以外,还实现了一个SQLITE加密版本,wxSQLite3的最新版本是3.0.1,支持SQLITE 3.7.14.1。
首先下载wxSQLite3:http://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/wxsqlite3-3.0.1.zip/download
解压后获取wxsqlite3-3.0.1\sqlite3\secure\src下所有文件。
新建C++ SDK DLL工程SQLITE3,加入预处理:
SQLITE_HAS_CODEC=1
CODEC_TYPE=CODEC_TYPE_AES128
SQLITE_CORE
THREADSAFE
SQLITE_SECURE_DELETE
SQLITE_SOUNDEX
SQLITE_ENABLE_COLUMN_METADATA
只把sqlite3secure.c包含在工程中,不使用预编译头。
在sqlite3.c及sqlite3secure.c文件头部加入:
#ifndef SQLITE_API
#define SQLITE_API __declspec(dllexport)
#endif
#ifndef SQLITE_HAS_CODEC
#define SQLITE_HAS_CODEC
#endif
在sqlite3.h头部加入(根据使用方法不同,此步骤并非必要):
#ifndef SQLITE_API
#define SQLITE_API __declspec(dllimport)
#endif
#ifndef SQLITE_HAS_CODEC
#define SQLITE_HAS_CODEC
#endif
使用方引用sqlite3.h及sqlite3.lib
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
int result = 0; sqlite3 *db = NULL; result = sqlite3_open("c:\test.db", &db); result = sqlite3_key(db, "abcd", 3); //使用密码,第一次为设置密码 //result=sqlite3_rekey(db,NULL,0); //清空密码 result = sqlite3_exec(db, "PRAGMA synchronous = OFF", 0, 0, 0); //提高性能 result = sqlite3_exec(db, "PRAGMA cache_size = 8000", 0, 0, 0); //加大缓存 result = sqlite3_exec(db, "PRAGMA count_changes = 1", 0, 0, 0); //返回改变记录数 result = sqlite3_exec(db, "PRAGMA case_sensitive_like = 1", 0, 0, 0); //支持中文LIKE查询 result = sqlite3_exec(db, "CREATE TABLE [MyTable] ([ID] INTEGER PRIMARY KEY NOT NULL,[MyText] TEXT NULL)", 0, 0, 0); result = sqlite3_exec(db, "INSERT INTO MyTable (MyText) VALUES ('测试!')", 0, 0, 0); result = sqlite3_close(db); |
近期评论