encryption - 如何在命令行上解密加密的sqlcipher数据库文件?

标签 encryption terminal sqlcipher

问题很简单

我拥有的是:

  • 我有一个数据库文件,该文件使用sqlcipher加密了
  • 我也也有用于加密此数据库文件
  • 的密码短语

    我需要的是:
  • 我需要解密数据库文件 /需要一个未加密/未加密/解密的数据库文件。
  • 最佳答案

    下载并构建sqlcipher-如果已安装sqlcipher,请跳过此步骤
    https://github.com/sqlcipher/sqlcipher中的目录中提取代码(例如〜/ sqlcipher)

    mkdir ~/bld;        #  Build will occur in a sibling directory
    cd ~/bld;           #  Change to the build directory
    ../sqlcipher/configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"; 
                        #configure sqlcipher 
    
    make install;       #  Install the build products
    

    将数据库解密为纯文本数据库
    $ cd ~/;
    $ ./sqlcipher encrypted.db 
    sqlite> PRAGMA key = 'testkey'; 
    sqlite> ATTACH DATABASE 'plaintext.db' AS plaintext KEY '';  -- empty key will disable encryption
    sqlite> SELECT sqlcipher_export('plaintext'); 
    sqlite> DETACH DATABASE plaintext; 
    

    在〜/ plaintext.db中找到已解密的数据库,您可以将其与任何sqlt浏览器(例如this)一起使用。

    更新:2015年9月

    http://sqlitebrowser.org现在支持sqlcipher数据库。那很整齐。

    关于encryption - 如何在命令行上解密加密的sqlcipher数据库文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25132477/

    相关文章:

    java - Java中的Hive Udf(加解密)

    python - 如何在 Python3 中解压缩使用 PKZIP 以外的算法加密的文件?

    terminal - Iterm2 首选项 : Show bar with directory, 日期和 git

    linux - 使用 uniq 比较 2 个字典

    android - 为我的 android 应用程序提供一个用 sqlcipher 加密的数据库不起作用,无法打开它

    c# - C# 中的 AES-XTS 实现

    linux - 退出 ssh -tt session

    ios - SQLCipher:使用未解析的标识符 'sqlite3_key'

    安装 Xcode 5 后不再构建使用 sqlcipher 的 iOS 项目

    mysql - Ansible 在其他变量中使用加密变量