博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLite 3.7.13的加密解密(六)—— 使用方法
阅读量:6074 次
发布时间:2019-06-20

本文共 1210 字,大约阅读时间需要 4 分钟。

采用上一节的方法为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;

}

转载地址:http://bkngx.baihongyu.com/

你可能感兴趣的文章
Linux常用命令
查看>>
Android开源代码解读の使用TelephonyManager获取移动网络信息
查看>>
想说一点东西。。。。
查看>>
css知多少(8)——float上篇
查看>>
NLB网路负载均衡管理器详解
查看>>
水平添加滚动条
查看>>
PHP中”单例模式“实例讲解
查看>>
VS2008查看dll导出函数
查看>>
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
iOS - Library 库
查看>>
MATLAB 读取DICOM格式文件
查看>>
spring事务管理(Transaction)
查看>>
django.contrib.auth登陆注销学习
查看>>
js执行本地exe文件的3种方法
查看>>
理解B树索引
查看>>
vi编辑器的命令集合
查看>>
Mysql利用binlog恢复数据
查看>>
解决 Windows启动时要求验证
查看>>
我的友情链接
查看>>