SQLite 3.7.13的加密解密(六)—— 使用方法

简介:
+关注继续查看

采用上一节的方法为SQLite添加了加密解密功能后,使用方法如下:

1、 在调用sqlite3_open()函数打开数据库后,要调用sqlite3_key()函数为数据库设置密码;

2、 如果数据库之前有密码,则调用sqlite3_key()函数设置正确密码才能正常工作;

3、 如果一个数据库之前没有密码,且已经有数据,则不能再为其设置密码;

4、 如果要修改密码,则需要在第一步操作后,调用sqlite3_rekey()函数设置新的密码;

5、 设置了密码的SQLite数据库,无法使用第三方工具打开;

 

具体使用的示例代码如下:

#include <stdio.h>

#include <stdlib.h>

#include "sqlite3.h"

#define  SQLITE3_STATIC

 

extern int sqlite3_key(sqlite3 *db, const void *pKey, int nKey);

 

static int _callback_exec(void * notused,int argc, char ** argv, char ** aszColName)

{

    int i;

    for ( i=0; i<argc; i++ )

    {

        printf"%s = %s\r\n", aszColName[i], argv[i] == 0 ? "NUL" : argv[i] );

    }

 

    return 0;

}

 

int main(int argc, char * argv[])

{

    const char * sSQL;

    char * pErrMsg = 0;

    int ret = 0;

    sqlite3 * db = 0;

 

    //创建数据库

    ret = sqlite3_open("d:\\encrypt.db", &db);

 

    //添加密码

    ret = sqlite3_key( db, "dcg", 3 );

 

    //在内存数据库中创建表

    sSQL = "create table class(name varchar(20), student);";

    sqlite3_exec( db, sSQL, _callback_exec, 0, &pErrMsg );

 

    //插入数据

    sSQL = "insert into class values('mem_52911', 'zhaoyun');";

    sqlite3_exec( db, sSQL, _callback_exec, 0, &pErrMsg );

 

    //取得数据并显示

    sSQL = "select * from class;";

    sqlite3_exec( db, sSQL, _callback_exec, 0, &pErrMsg );

 

    //关闭数据库

    sqlite3_close(db);

    db = 0;

 

    return 0;

}






本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/940816,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
SQL 数据库 数据库管理
Qt操作Sqlite类封装,及命令行导入csv文件到Sqlite数据库
Qt操作Sqlite类封装,及命令行导入csv文件到Sqlite数据库
|
9月前
|
存储 SQL 数据库
SQLite数据库安装及简单使用
1.什么是SQLite SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。 在sqlite中,数据库的信息是存储在一个文件中的,这种特性非常适合个人的小项目开发
183 1
SQLite数据库安装及简单使用
|
数据安全/隐私保护 C语言 C++
【C 语言】文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )
【C 语言】文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )
435 0
|
编解码 数据安全/隐私保护 Python
Python 技术篇 - 通过pyminifier库实现源码压缩、混淆、加密保护实例演示,pyminifier的使用方法
Python 技术篇 - 通过pyminifier库实现源码压缩、混淆、加密保护实例演示,pyminifier的使用方法
382 0
Python 技术篇 - 通过pyminifier库实现源码压缩、混淆、加密保护实例演示,pyminifier的使用方法
|
存储 API 数据库
SQLite简介与安装
SQLite简介与安装
300 0
SQLite简介与安装
|
关系型数据库 数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.15. 口令文件
33.15. 口令文件 一个用户主目录中的.pgpass文件可能包含在连接需要时使用的口令(并且其他情况不会指定口令)。在微软的 Windows 上该文件被命名为%APPDATA%\postgresql\pgpass.conf(其中%APPDATA%指的是用户配置中的应用数据子目录)。
1244 0
|
算法 数据安全/隐私保护 数据库管理
|
数据库 数据安全/隐私保护 数据库管理
|
数据库 数据安全/隐私保护 数据库管理
推荐文章
更多