我对sqlcipher有一个普遍的问题.. sqlcipher在使用GnuPG或openssl直接加密数据库的优势在哪里? 每当我想用sqlcipher加密/解密时,我必须打开数据库,附加一个新数据库,对其进行加密/解密,将其导出到新数据库中并解除它。例如:
echo "PRAGMA key='$1';select count(*) from sqlite_master;ATTACH DATABASE '$2/mydb-decrypt.db' AS plaintext KEY '';SELECT sqlcipher_export('plaintext');DETACH DATABASE plaintext;" | sqlcipher $2/mydb.db
那么为什么要使用sqlcipher?
答案 0 :(得分:3)
您所看到的冲突可能与您使用它的方式有关,而不是更常用的冲突。 SQLCipher即时解密和加密数据以供用户访问。也就是说,一旦您向SQLCipher提供了密钥材料,就只会解密包含您数据的数据页面。这不要求您将整个数据库解密为纯文本并写入磁盘,以便在您上面建模时访问您的数据。我建议您查看有关SQLCipher设计here的其他详细信息。