Java 在Maven项目中解密sqlCipher
我有一个Android项目,其中有一个使用SqlCipher(net.SqlCipher.database.SQLiteOpenHelper)加密的数据库。这一切工作,我可以通过我的桌面上的DB浏览器访问解密的数据 然而,我有一个服务器端Maven项目(可以是任何项目,但这是一个Maven项目),它必须进一步处理数据 我的问题是:如何解密数据以便在Java/Maven项目中进行处理 为了给出一个代码示例,我目前以如下方式访问数据库: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
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支持构建的驱动程序。政府提供了这样一个驱动力