Qt调用SQLCipher实现数据库加密/解密

本文介绍了如何使用SQLite3结合SQLCipher进行数据库加密,并在命令行中进行解密操作。通过PRAGMA key命令设置解密密钥,但需要注意一旦忘记密钥,数据库将无法解密。此外,如果在执行其他命令后再尝试设置密钥,可能无法正确解密数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

书接上回。

(1条消息) Qt 使用Sqlite3数据库加密_ 刘一儿(嵌入式)-优快云博客_qt sqlite数据库加密

加密后,如何在命令行进行解密呢?

SQLCipher官网API:SQLCipher API - Zetetic 

经过查找发现使用 如下命令可以打开数据库:

PS E:\QtPro\Qt5\sqlitecipher > .\sqlite3shell.exe .\student.db
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> PRAGMA key = 'lsy';
sqlite> .tables
Student
sqlite> select * from Student;
2|2|2|2|2|test
3|3|3|33|3|test
4|4|4|4|4|test
1|1|11|1|1|test
sqlite>

使用工具:sqlite3shell.exe打开数据库后,第一次一定要执行 PRAGMA key='xxx'命令。如果在执行其他命令之后发现数据库是加密的,然后再执行该行,仍然是解不了密的。如下:

PS E:\QtPro\Qt5\sqlitecipher > .\sqlite3shell.exe .\student.db
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
sqlite> PRAGMA key = 'lsy';
sqlite> .tables //仍然是没有看到数据库里面的表
sqlite> select * from Student;
Error: file is encrypted or is not a database
sqlite> .e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liu-Eleven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值