当前位置: 首页 > news >正文

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_sqlcipherimport ("fmt""github.com/jmoiron/sqlx"_ "github.com/mutecomm/go-sqlcipher/v4""log""net/url""time"
)var db *sqlx.DBfunc Db() *sqlx.DB {return db
}
func InitDB(filepath string) error {var err errorkey := 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
}

没有错误说明就是链接成功了

http://www.lryc.cn/news/146585.html

相关文章:

  • clickhouse 系列1:clickhouse v21.7.5.29 源码编译
  • servlet初体验之环境搭建!!!
  • 宁芝 NIZ 键盘开机需要重新插拔 USB 线才能使用
  • R编程教程_编程入门自学教程_菜鸟教程-免费教程分享
  • [CMake教程] CMake列表 - list
  • 报错 - net::ERR_ABORTED 500 (Internal Server Error)
  • 【Java Easypoi Apache poi】 Word导入与导出
  • Java稀疏数组
  • 内存管理框架 --- 基础知识
  • React + Next.js 搭建项目(配有对比介绍一起食用)
  • 【Java】Java基础
  • Spring-SpringBoot-SpringMVC-MyBatis常见面试题
  • 15.MyCat数据库分片
  • 【Python】PySpark
  • pycharm 打开Terminal时报错activate.ps1,因为在此系统上禁止运行脚本,并因此无法进入虚拟环境
  • [C++][C#]yolox TensorRT C++ C#部署
  • 根据源码,模拟实现 RabbitMQ - 网络通讯设计,自定义应用层协议,实现 BrokerServer (8)
  • MongoDB入门
  • vr智慧党建主题展厅赋予企业数字化内涵
  • go中mutex的sema信号量是什么?
  • LeetCode笔记:Weekly Contest 360
  • 【树DP】2021ICPC南京 H
  • Leedcode19. 删除链表的倒数第 N 个结点
  • Mysql-索引查询相关
  • C++ Pimpl
  • rust学习-类型转换
  • 算法通过村第四关-栈青铜笔记|手写栈操作
  • Python计算加速利器
  • PyTorch 深度学习实践 第10讲刘二大人
  • Linux特殊指令