2015-08-19 71 views
1

我已经将sqlite3数据库转储到.sql文件中。后来我有导入的文件是这样的:sqlcipher如何导入sqlite3数据库

cat databasedump.sql | sqlcipher encrypted_database

然后我打开加密的数据库,并设置与重点:

pragma key="12345"

然后我关闭数据库,并重新打开它,它仍然没有加密。

如何在数据库中加载转储并对其进行加密?

回答

1
$ sqlcipher plaintext.db 
sqlite> ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'my password'; 
sqlite> SELECT sqlcipher_export('encrypted'); 
sqlite> DETACH DATABASE encrypted; 
+0

这工作,但我怎么能解密数据库?通常它的'pragma key ='我的密码';'但之后没有解密,我只是得到以下消息:'错误:文件被加密或者不是数据库'。我只看到了类似的方式...所以附加新的数据库..解密..选择..分离..等。有没有办法解密它,并直接加载它在内存中? – Shibumi

1
$ ./sqlcipher encrypted.db 
sqlite> PRAGMA key = 'my password'; 
sqlite> ATTACH DATABASE 'plaintext.db' AS plaintext KEY ''; -- empty key will disable encryption` 
sqlite> SELECT sqlcipher_export('plaintext'); 
sqlite> DETACH DATABASE plaintext;