有一个包含数据库的文件 - 它是由 c# 代码创建的,但有一个问题是它带有密码。这是创建文件的程序作者的连接字符串:
string constr = String.Format("Data Source = {0};FailIfMissing = false;Read Only = false;Password = {1}", path, pass);
connect = new SQLiteConnection(constr);
使用任一:
System.Data.SQLite.dll и SQLite.Interop.dll
如何在java中打开Android?并同时关闭)
ps
尝试使用 Chiper 但没有奏效:
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteOpenHelper;
import android.content.Context;
public class SqlChiperAdapter extends SQLiteOpenHelper {
public SQLiteDatabase sqLiteDatabase;
public SqlChiperAdapter(Context ct, String patch, String name, String Secret)
{
super(ct,"Dgfgg",null,1);
SQLiteDatabase.loadLibs(ct);
sqLiteDatabase= SQLiteDatabase.openOrCreateDatabase(patch+name,Secret,null);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
我们得到了什么:
net.sqlcipher.database.SQLiteException: file is not a database: , while compiling: select count(*) from sqlite_master;
据我所知,chiper 只是简单地获取数据库文件并使用 AES 256 对其进行加密。由于无法在 android 和桌面数据库浏览器中使用 chiper 打开加密的数据库,因此加密方法有所不同。可能生成了不同长度的密钥,可能由于初始化向量而产生了一些差异......解决方案: