sqlite3 加密访问

这篇具有很好参考价值的文章主要介绍了sqlite3 加密访问。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于sqlite3 加密

一、相关加密用到的sqlcipher

1.1 sqlcipher 是一个数据库加密的开源库

sqlcipher开源地址

我这边是使用的docker镜像,镜像地址: https://hub.docker.com/r/pallocchi/sqlcipher

加密格式

docker run -v <workdir>:/sqlcipher pallocchi/sqlcipher sqlenc <db-plain> <db-encrypted> <PASSPHRASE>

执行案例 密码是test, 在当前目录下执行,当前目录有my.db 未加密的库

docker run --platform linux/amd64 -it --rm -v  ${PWD}/databases:/sqlcipher pallocchi/sqlcipher sqlenc my.db my-encrypted.db test

1.2 验证加密库

 docker run --platform linux/amd64 -it --rm -v ${PWD}:/sqlcipher pallocchi/sqlcipher sqlcipher city-encrypted.db

在cli中输入

PRAGMA key = 'test';
.tables

如果能正常显示你的表格说明加密问题

二、用golang客户端连接测试

2.1 仓库地址

https://github.com/mutecomm/go-sqlcipher

2.2 测试代码

package mydb_sqlcipher

import (
	"fmt"
	"github.com/jmoiron/sqlx"
	_ "github.com/mutecomm/go-sqlcipher/v4"
	"log"
	"net/url"
	"time"
)

var db *sqlx.DB

func Db() *sqlx.DB {
	return db
}
func InitDB(filepath string) error {
	var err error
	key := url.QueryEscape("test")
	dbname := fmt.Sprintf("%s?_pragma_key=%s&_pragma_cipher_page_size=4096", filepath, key)
	db, err = sqlx.Connect("sqlite3", dbname)
	if err != nil {
		log.Println("Error opening database:", err)
		return err
	}

	// 设置连接池
	db.SetConnMaxLifetime(4 * time.Hour)
	db.SetMaxOpenConns(10)
	db.SetMaxIdleConns(5)
	err = db.Ping()
	if err != nil {
		log.Fatalf("数据库连接失败ping:%v", err)
	}
	return nil
}

没有错误说明就是链接成功了文章来源地址https://www.toymoban.com/news/detail-684299.html

到了这里,关于sqlite3 加密访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 02.sqlite3学习——嵌入式数据库的基本要求和SQLite3的安装

    目录 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模型 ubuntu 22.04下的SQLite安装 (1)安装SQLite3软件 sudo apt-get install sqlite3 (2)安装库文件 sudo apt-get install libsqlite3-dev 安装成功后输入sqlite3查看 (3)安装sqlite3可

    2024年02月11日
    浏览(71)
  • 【嵌入式数据库之sqlite3】

    目录 一.数据库基本概念(理解) 1.数据 2.数据库 二.常用的数据的数据库(了解) 1.大型数据库 2.中型数据库 3.小型数据库 三.基于嵌入式的数据库(了解) 四.SQLite基础(了解) 五.创建数据库(熟练) 1.手工创建 2.代码创建 六.SQLite编程接口 七.代码示例(学生管理系统) 八

    2024年02月09日
    浏览(56)
  • 嵌入式数据库之sqlite3

            数据:能够输入计算机并能被计算机程序识别和处理的信息集合。         数据库:数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合。 1.大型数据库         Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作

    2024年02月10日
    浏览(52)
  • SQLite3数据库的介绍和使用(面向业务编程-数据库)

    SQLite是一种用C语言实现的的SQL数据库 它的特点有:轻量级、快速、独立、高可靠性、跨平台 它广泛应用在全世界范围内的手机电脑应用的内建数据库 官网地址:https://www.sqlite.org/index.html SQLite因为其采用文件存储,且容易移植。在嵌入式中应用非常广泛,可以说是嵌入式业

    2024年02月02日
    浏览(48)
  • 【C++】开源:sqlite3数据库配置使用

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍sqlite3数据库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 项目Github地址: https://github.com/sqlite/sqlite SQLite 是一种嵌入式

    2024年02月14日
    浏览(54)
  • sqlite3 加密访问

    1.1 sqlcipher 是一个数据库加密的开源库 sqlcipher开源地址 我这边是使用的docker镜像, 镜像地址 : https://hub.docker.com/r/pallocchi/sqlcipher 加密格式 执行案例 密码是test, 在当前目录下执行,当前目录有my.db 未加密的库 1.2 验证加密库 在cli中输入 如果能正常显示你的表格说明加密问题

    2024年02月10日
    浏览(35)
  • 用于将Grafana默认数据库sqlite3迁移到MySQL数据库

    以下是一个方案,用于将Grafana数据迁移到MySQL数据库。 背景: grafana 默认采用的是sqlite3,当我们要以集群形式部署的时使用mysql较为方便,试了很多sqlite转mysql的方法要么收费,最后放弃。选择自己动手风衣足食。 目标: 迁移sqlite3切换数据库到mysql 前提条件: 确保你已经安装了

    2024年02月20日
    浏览(60)
  • 10.1 嵌入式数据库之sqlite3

    【1】数据库    1, 数据库的安装        sudo dpkg -i  *.deb    2, 数据库命令:       1)系统命令 , 都以\\\'.\\\'开头          .exit           .quit          .table   查看表          .schema  查看表的结构                  2)sql语句, 都以‘;’结尾         1-- 创建一张表

    2024年02月12日
    浏览(47)
  • sqlite3 关系型数据库语言 SQL 语言

            SQL(Structured Query Language)语言是一种结构化查询语言,是一个通用的,功能强大的关系型数据库操作语言. 包含 6 个部分: 1.数据查询语言(DQL:Data Query Language)         从数据库的二维表格中查询数据,保留字 SELECT 是 DQL 中用的最多的语句 2.数据操作语言(DML)       

    2024年02月07日
    浏览(54)
  • 基于数据库 Sqlite3 的 root 管理系统

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包