#java #maven #encryption #sqlcipher
#java #maven #шифрование #sqlcipher
Вопрос:
У меня есть проект Android с базой данных, которая была зашифрована с помощью SQLCipher (net.sqlcipher.database.SQLiteOpenHelper). Все это работает, и я могу получить доступ к расшифрованным данным через DB-browser на моем рабочем столе.
Однако у меня есть серверный проект 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)
Ответ №1:
Если вы используете JDBC, вам понадобится драйвер, специально созданный с поддержкой SQLCipher. Программа SQLCipher Enterprise предлагает такой драйвер.