sqlite3 数据库加密:sqlite3mc

命令简单使用:

// 加密,将 test.db 加密后导出新的数据库 test_enc.db
user > sqlite3mc test.db
sqlite> ATTACH DATABASE 'test_enc.db' AS test_enc KEY 'xxxxxxxx'; --设置密码
sqlite> SELECT sqlcipher_export('test_enc');
sqlite> DETACH DATABASE test_enc;
sqlite> .exit// 解密,将 test_enc.db 设置为空密码后导出 test.db
user > sqlite3mc test_enc.db
sqlite> PRAGMA key = 'xxxxxxxx';
selite> select * from test_table; --sql语句
sqlite> ATTACH DATABASE 'test.db' AS test KEY '';  --空的密码不会加密数据库
sqlite> SELECT sqlcipher_export('test');
sqlite> DETACH DATABASE test;
sqlite> .exit

样例代码:

#include <cstdio>
#include <sqlite3.h>
#include <sqlite3mc.h>
#include <sqlite3mc_version.h>
#include <sqlite3mc_vfs.h>
#pragma comment(lib,"sqlite3mc_static_x64.lib")
int main() {sqlite3* db;sqlite3_open("test.db", &db);sqlite3_key(db, "111111", 6);sqlite3_exec(db, "create table person (id int, name vchar(50))", NULL, NULL, NULL);int i = sqlite3_exec(db, "insert into person (id,name) values (234,'quit')", NULL, NULL, NULL);printf("i=%d", i);sqlite3_close(db);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/241269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3选项式API和组合式API详解

前言 相信学习Vue3的人中大多数都是之前使用Vue2开发的&#xff0c;当拿到一个Vue3项目时就接触到了组合式api&#xff0c;但对于组合式api不了解的人第一眼看上去会觉得一头雾水。&#xff1a;“什么玩意&#xff0c;乱七八糟的&#xff0c;选项式api多好&#xff0c;方法变量…

Vue3揭秘:案例深度讲解Vue3全部新特性

🧙‍♂️ 诸位好,吾乃诸葛妙计,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 📄 吾之文章,不以繁复之言,惑汝耳目;但以浅显之语,引汝入胜。 🚀 若此文对阁下有所裨益,敬…

python简单分割文件的方法(python经典案例)

在某些情况下&#xff0c;我们需要将一个大文件分割成多个小文件&#xff0c;或者根据长度、行数等规则将一个文件分割成多个文件。Python提供了简单的方式来实现这些操作。 方法1&#xff1a;使用seek和read方法 下面是一段示例代码&#xff0c;它将一个文件分割成5个小文件…

Linux bridge开启hairpin模拟测试macvlan vepa模式

看到网上介绍可以通过Linux bridge 开启hairpin方式测试macvlan vepa模式&#xff0c;但是没有找到详细资料。我尝试测试总提示错误信息&#xff0c;无法实现&#xff0c;经过几天的研究&#xff0c;我总算实现模拟测试&#xff0c;记录如下&#xff1a; 参考 1.Linux Macvla…

「Vue3面试系列」Vue3.0性能提升主要是通过哪几方面体现的?

文章目录 一、编译阶段diff算法优化静态提升事件监听缓存SSR优化 二、源码体积三、响应式系统参考文献 一、编译阶段 回顾Vue2&#xff0c;我们知道每个组件实例都对应一个 watcher 实例&#xff0c;它会在组件渲染的过程中把用到的数据property记录为依赖&#xff0c;当依赖发…

MicroPython的交互式解释器模式 REPL

MicroPython的交互式解释器模式又名REPL&#xff08;read-eval-print-loop&#xff09;&#xff0c;就是一种命令输入交互模式&#xff0c;跟Python的REPL是类似的&#xff0c;就是在命令行直接输入Python代码或表达式执行并打印结果。关于MicroPython的REPL跟通常的Python类似…

linux运维面试题

linux运维面试题 面试 K8S篇(高可用) Q&#xff1a;k8s是什么&#xff1f;架构&#xff1f; Kubenetes是一个开源的容器集群管理系统。主要用于容器编排&#xff0c;解决容器调度问题。当应用请求时&#xff0c;k8s需要合理分配请求到空闲node节点上去。k8s使用的主从模式&…

hive sql常用函数

目录 一、数据类型 二、基础运算 三、字符串函数 1、字符串长度函数: length() 2、字符串反转函数&#xff1a;reverse 3、字符串连接函数 4、字符串截取函数 5、字符串分割函数&#xff1a;split 6、字符串查找函数 7、ascii 8、base64 9、character_length 10、c…

python通过JS逆向采集艺恩电影数据, 并制作可视化

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 环境使用: 版 本&#xff1a; python 3.10 编辑器&#xff1a;pycharm 2022.3.2 nodejs 模块使用: requests -> pip install requests execjs -> pip install…

【Git】在 IDEA 中合并多个 commit 为一个

文章目录 1 未提交到远程分支1.1 需求说明1.2 reset 操作1.3 再次 push 2 已经提交到远程分支2.1 需求说明2.2 rebase 操作2.3 强制 push 分两种情况&#xff1a; 一种是本地提交还没推到远程&#xff0c;这种好处理另一种是已经提交到远程分支&#xff0c;这个略麻烦 1 未提…

【接口测试】Postman(三)-变量与集合

一、变量 ​ 变量这个概念相信大家都不陌生&#xff0c;因此在这里我们不介绍了。主要说一下在Postman中有哪几类变量&#xff0c;主要包括以下四类&#xff1a; Global&#xff08;全局&#xff09; Environment&#xff08;环境&#xff09; Local&#xff08;本地&#xf…

Linux中安装Maven3.6.1

一、安装及配置maven 1.下载maven安装包 首先需要切换到自己需要安装的目录 我自己是把配置都放到了&#xff1a;/usr/local/maven路径下 cd /usr/local/maven 下载maven安装包&#xff1a; wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven…

FreeRTOS信号量学习

目录 一、信号量的特性 1. 信号量的常规操作 2. 信号量跟队列的对比 3. 两种信号量的对比 4. 信号量函数 4.1 创建 4.2 删除 4.3 give/take 5. 使用二进制信号量来同步 6. 防止数据丢失 7. 使用计数型信号量 队列(queue)可以用于传输数据&#xff1a;在任务之间、任务和…

Linux多线程:线程池(单例),读写锁

目录 一、线程池&#xff08;单例模式&#xff09;1.1 makefile1.2 LockGuard.hpp1.3 log.hpp1.4 Task.hpp1.5 Thread.hpp1.6 ThreadPool.hpp1.7 main.cc 二、STL,智能指针和线程安全2.1 STL中的容器是否是线程安全的?2.2 智能指针是否是线程安全的? 三、其他常见的各种锁四、…

dockerfile ENTRYPOINT 执行.sh脚本提示找不到文件或文件不存在 No such file or directory

我这里记录的是我遇到的一种特殊情况&#xff0c;如果你也遇到了这个问题&#xff0c;且都试了在百度中找到的解决方法还没有解决可以看看是不是和我遇到的问题一样。 在Dockerfile中&#xff0c;我ADD了两个文件&#xff0c;一个是jar包&#xff0c;一个是一个执行jar包的.sh…

proto与json的互相转换

proto与json的互相转换 proto使用proto python dict和messagepython message序列化golangmessage序列化message转json proto使用 生成逻辑请参考 https://blog.csdn.net/qq_43645782/article/details/127112663 proto syntax "proto3";message testRequest {stri…

微服务之配置中心与服务跟踪

zookeeper 配置中心 实现的架构图如下所示&#xff0c;采取数据加载到内存方式解决高效获取的问题&#xff0c;借助 zookeeper 的节点监听机制来实现实时感知。 配置中心数据分类 事件调度&#xff08;kafka&#xff09; 消息服务和事件的统一调度&#xff0c;常用用 kafka …

c语言突击函数

函数 1.函数&#xff1a;是具有一定功能的程序块&#xff0c;是c语言的基本组成单位 2.函数的定义&#xff1a;[函数类型] 函数名 &#xff08;形式参数&#xff09; 函数不可以嵌套定义&#xff0c;但是可以嵌套调用 3.函数名缺省返回值&#xff0c;默认int&#xff1b; 4…

使用Java语言中的算法输出杨辉三角形

一、算法思想 创建一个名为YanghuiTest的类,然后创建二维数组&#xff0c;然后遍历二维数组的第一层&#xff0c;然后初始化第二层数组的大小&#xff0c;然后遍历第二层数组&#xff0c;然后将两侧的数组元素赋为1&#xff0c;然后其它数值通过公式计算&#xff0c;最后可以输…

Leetcode—1099.小于K的两数之和【简单】Plus

2023每日刷题&#xff08;六十八&#xff09; Leetcode—1099.小于K的两数之和 实现代码 class Solution { public:int twoSumLessThanK(vector<int>& nums, int k) {int n nums.size();int left 0, right n - 1;int sum 0;int ans 0;sort(nums.begin(), nums…