SQLite database实现加密

注意:以下操作以VS2022为开发工具,以**C#**为开发语言。

数据加密原因

软件在使用的各个场景,很多都需要数据具有保密性,于是对于数据库就需要加密。特别是在某些特定领域或存储敏感数据尤其如此。

SQLite加密实现

SQLite加密有两种方式,其一是使用SQLite的收费版本,其可以实现加密;另一种就是使用免费的SQLitePCLRaw 来实现。收费版由于囊中羞涩,就不多说了,说说使用SQLitePCLRaw怎么实现加密。

加密实现步骤

首先在所需要的项目安装Nuget包SQLitePCLRaw.bundle_e_sqlcipher,当前最新版本为2.1.7。

然后只需要连接SQLite的字符串中添加 Password=YourPassword 即可,以下为使用EFCore时重写OnConfiguring实现加密的示例,其它方式可参考此示例进行相应操作:

cs 复制代码
        protected override void OnConfiguring(DbContextOptionsBuilder options)
            => options.UseSqlite($"Data Source={DbPath};Password={Consts.DbPwd}");

加密后数据如何查看?

通过上述操作加密后使用Sqlite查看工具就需要输入密码才可进行查看数据,以SQLiteStudio为例进行说明。

1.添加数据库时,Database type一定要选择SQLCipher,然后再选择你的Sqlite的db文件。

2.在下图中的Password中录入密码(Sqlite加密是没有用户名的),然后点击下图中左下角的Test connection进行测试,确认密码是否正确。

密码正确的话,点击上图中的OK,即可成功将数据库添加到SQLiteStudio中。后续的数据查看及相应操作与未加密的SQLite完全一致。

验证database是否加密?

至于验证是否加密,若安装了SQLiteStudio,并将db文件关连了SQLite Studio,那么双击 .db文件是不能直接打开的,双击时会出现报错:[17:45:06] Could not add database F:\backup\Source\win10-x64\DataBase\your.db: file is not a database; file is not a database; file is not a database.

相关推荐
Wyz201210241 天前
HTML函数运行时触控屏失灵是硬件故障吗_输入层兼容性测试【详解】
jvm·数据库·python
Greyson11 天前
TensorFlow中如何冻结模型层_设置layer.trainable等于False实现微调
jvm·数据库·python
老纪的技术唠嗑局1 天前
4.15 bubseek —— 让 Agent 的足迹,变成团队的洞察
大数据·数据库·sql·游戏·ai·oceanbase·sql优化
m0_748839491 天前
SQL视图在ETL流程中的作用_数据清洗与标准化接口
jvm·数据库·python
2401_832635581 天前
JavaScript中字符串toLowerCase与toUpperCase规范
jvm·数据库·python
Wyz201210241 天前
如何在 Discord.py 中实现按钮权限控制:仅允许特定角色点击
jvm·数据库·python
Chasing__Dreams1 天前
Mysql--基础知识点--100-- insert VS select...for update 加锁
数据库·mysql
2301_777599371 天前
golang如何实现WebSocket断线重连_golang WebSocket断线重连实现要点
jvm·数据库·python
ZeroNews内网穿透1 天前
ZeroNews安全网关接入企业微信自建应用
网络·数据库·安全·云计算
数据雕塑家1 天前
数据库 + Grafana 可视化配置指南:从数据源连接到第一个仪表盘
数据库·grafana