sqlite - 如何使用命令行访问加密的 SQLite 数据库文件而不是数据库浏览器界面

标签 sqlite sqlcipher

目前我可以使用 DB Browser for SQLite 在 Mac 上打开带密码的加密 DB 文件。

DB Browser to open DB

每个图像的选项:

  • 原始 key (以 0x 开头...)
  • SQLCipher 3 默认值

我想使用命令行而不是数据库浏览器打开此文件。

尝试遵循命令,但到目前为止似乎运气不佳。

sqlcipher xxx.db
SQLite version 3.37.2 2022-01-06 13:25:41 (SQLCipher 4.5.1 community)
Enter ".help" for usage hints.
sqlite> pragma key="0xMyKey";
ok
sqlite> .tables
Error: file is not a database

提前感谢您的帮助,以便我可以像 mysql 一样使用命令行访问或导出 sqlite 数据库(mysql -u ... & mysqldump)。

最佳答案

通过此链接找到文档:https://www.zetetic.net/sqlcipher/sqlcipher-api/

sqlcipher xxx.db
SQLite version 3.37.2 2022-01-06 13:25:41 (SQLCipher 4.5.1 community)
Enter ".help" for usage hints.
sqlite> PRAGMA key = "x'{KEY_WITHOUT_0X}'"; // Replace {KEY_WITHOUT_0X} with your key without 0x!
ok
sqlite> PRAGMA cipher_page_size = 1024;
sqlite> PRAGMA kdf_iter = 64000;
sqlite> PRAGMA cipher_hmac_algorithm = HMAC_SHA1;
sqlite> PRAGMA cipher_kdf_algorithm = PBKDF2_HMAC_SHA1;
sqlite> PRAGMA cipher_default_plaintext_header_size = 0;
sqlite> 

关于sqlite - 如何使用命令行访问加密的 SQLite 数据库文件而不是数据库浏览器界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72169732/

相关文章:

java - 加载一个小型 SQLite 数据库(20 行左右)以使用 Android 进行读取

android - 将sqlite转换为加密数据库 :

android - 我可以在哪里安全地存储 Android 应用程序上的数据库密码?

android - SQLCipher for Android : icudt46l. zip 真的需要吗?

python - 如何为 Windows 构建 SQL Cipher Python 绑定(bind)

javascript - 为什么 Titanium 不接受日期作为 SQLite 中的列类型?

android - SQLiteDatabase.insert() 为虚拟表返回不正确的 rowid

php - PHP获取对象标识符

sqlite - sqlite 中的 strftime 转换为 postgres

sqlcipher附加数据库