Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Maven项目中解密sqlCipher_Java_Maven_Encryption_Sqlcipher - Fatal编程技术网

Java 在Maven项目中解密sqlCipher

Java 在Maven项目中解密sqlCipher,java,maven,encryption,sqlcipher,Java,Maven,Encryption,Sqlcipher,我有一个Android项目,其中有一个使用SqlCipher(net.SqlCipher.database.SQLiteOpenHelper)加密的数据库。这一切工作,我可以通过我的桌面上的DB浏览器访问解密的数据 然而,我有一个服务器端Maven项目(可以是任何项目,但这是一个Maven项目),它必须进一步处理数据 我的问题是:如何解密数据以便在Java/Maven项目中进行处理 为了给出一个代码示例,我目前以如下方式访问数据库: try { Class.forName(&qu

我有一个Android项目,其中有一个使用SqlCipher(net.SqlCipher.database.SQLiteOpenHelper)加密的数据库。这一切工作,我可以通过我的桌面上的DB浏览器访问解密的数据

然而,我有一个服务器端Maven项目(可以是任何项目,但这是一个Maven项目),它必须进一步处理数据

我的问题是:如何解密数据以便在Java/Maven项目中进行处理

为了给出一个代码示例,我目前以如下方式访问数据库:

try {
        Class.forName("org.sqlite.JDBC");
        c = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Username\\Desktop\\"+path);
    }
    catch (Exception e) {
        System.err.println(e.getClass().getName() + ": " + e.getMessage());
    }
    return c;
我使用这样的结果集:

ResultSet myGet(Connection db, String sql){
    try {
        return db.createStatement().executeQuery(sql);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}
在加密数据库之前,上面的方法可以工作,但现在显然不行。我得到以下错误:

org.sqlite.SQLiteException: [SQLITE_NOTADB]  File opened that is not a database file (file is not a database)

如果您使用的是JDBC,您将需要一个专门使用SQLCipher支持构建的驱动程序。提供了这样一个驱动程序。

如果您使用的是JDBC,则需要一个专门使用SQLCipher支持构建的驱动程序。政府提供了这样一个驱动力