【问题标题】:sqlcipher how to import a sqlite3 databasesqlcipher如何导入sqlite3数据库
【发布时间】:2015-08-19 15:48:48
【问题描述】:

我已将 sqlite3 数据库转储到 .sql 文件中。之后我导入了这样的文件:

cat databasedump.sql | sqlcipher encrypted_database

然后我打开加密数据库并设置密钥:

pragma key="12345"

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

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

【问题讨论】:

    标签: database encryption sqlite sqlcipher


    【解决方案1】:
    $ sqlcipher plaintext.db
    sqlite> ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'my password';
    sqlite> SELECT sqlcipher_export('encrypted');
    sqlite> DETACH DATABASE encrypted;
    

    【讨论】:

    • 这行得通,但是我怎样才能解密数据库呢?通常是pragma key='my password';,但之后没有解密我只收到以下消息:Error: file is encrypted or is not a database。我只看到类似的方式返回..所以附加新数据库..解密..选择..分离..等等。有没有办法解密它并将其直接加载到 ram 中?
    【解决方案2】:
    $ ./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;
    

    【讨论】:

      猜你喜欢
      • 2018-12-02
      • 2013-10-06
      • 2010-09-23
      • 2018-12-09
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 2019-07-13
      相关资源
      最近更新 更多