如何使用sqlcipher解密sqlite数据库android?

时间:2015-06-28 10:01:55

标签: android sqlcipher

我需要一个本地数据库用于我的应用程序。我创建了一个并加密了它。(我知道pw)。现在我想将这个数据库加载到原始应用程序的资产文件夹。我想在复制前解密它。 我有这样的复制代码,这适用于未经编辑的数据库。 我如何为加密的db.Thanks

翻译这个
private void copyDataBase() throws IOException {

    //Open your local db as the input stream
    InputStream myInput = myContext.getAssets().open(DB_NAME);

    // Path to the just created empty db
    String outFileName = DB_PATH + DB_NAME;

    //Open the empty db as the output stream
    OutputStream myOutput = new FileOutputStream(outFileName);

    //transfer bytes from the inputfile to the outputfile
    byte[] buffer = new byte[5120];
    int length;
    while ((length = myInput.read(buffer)) > 0) {
        myOutput.write(buffer, 0, length);
    }

    //Close the streams
    myOutput.flush();
    myOutput.close();
    myInput.close();

}

1 个答案:

答案 0 :(得分:0)

执行此操作的正确方法是将加密数据库复制到本地文件夹中。然后,您可以使用SQLCipher打开它并使用sqlcipher_export()将其转换为标准(非加密)SQLite数据库。