sqlcipher的优势

Advantage of sqlcipher

我有一个关于 sqlcipher 的一般性问题。sqlcipher 相对于使用 GnuPG 或 openssl 直接加密数据库的优势在哪里? 每次我想 encrypt/decrypt 使用 sqlcipher 时,我都必须打开数据库,附加一个新数据库,encrypt/decrypt,将其导出到新数据库中,然后解除附加。例如像这样:

echo "PRAGMA key='';select count(*) from sqlite_master;ATTACH DATABASE '/mydb-decrypt.db' AS plaintext KEY '';SELECT sqlcipher_export('plaintext');DETACH DATABASE plaintext;" | sqlcipher /mydb.db

这很臃肿,不是吗? 使用 openssl 或 gnupg 我可以 decrypt/encrypt 直接用一个命令..

那么为什么要使用 sqlcipher?

您所看到的冲突可能在于您使用它的方式与它更常用的方式。 SQLCipher 为用户访问即时解密和加密数据。也就是说,一旦您为 SQLCipher 提供了密钥 material,只有包含您的数据的数据页会被解密。这不需要您将整个数据库解密为纯文本并写入磁盘以访问您在上面建模的数据。我建议您查看有关 SQLCipher 设计的其他详细信息 here