书接上回。
(1条消息) Qt 使用Sqlite3数据库加密_ 刘一儿(嵌入式)-CSDN博客_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
|