2015-08-19 97 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;