在java中读取加密的sqlite3数据库,该数据库是在mfc C ++中创建和加密的

时间:2014-01-10 14:22:13

标签: java encryption mfc sqlite

我正在开发一个应用程序,它有一个存储用户数据的数据库,但由于安全原因,我们决定加密数据库。但是在我的(MFC)应用程序中,我已经启动了一个java程序(从MFC应用程序启动的jar文件),它将在云上上传文件并将上传时间存储在数据库中。

在他们没有加密之前所以一切顺利,但现在数据库已加密,我的java应用程序无法读取数据库。在我的java应用程序中使用外部Jar文件名sqlite-jdbc-3.7.15-M1.jar并以下列方式完成连接。

Class.forName("org.sqlite.JDBC");
            c = DriverManager.getConnection("jdbc:sqlite:IDPWD.idp");

            System.out.println("Opened database successfully");
            DatabaseMetaData dbm = c.getMetaData();
            // check if "employee" table is there
            ResultSet tables = dbm.getTables(null, null, "FileDwnlTable", null);
            if (tables.next()) {
                c.setAutoCommit(false);
                stmt = c.createStatement();
                String sql = "UPDATE FileDwnlTable set DWNL_TIME = '"
                        + LocalSysTime + "' where ID=1;";
                System.out.println(sql);
                stmt.executeUpdate(sql);
                c.commit();
                stmt.close();
                c.close();

现在我如何打开/读取加密数据库。在C ++中,MFC我提供了可以使用的密钥并打开数据库并执行数据库操作c ++中使用的命令,mfc是

try{
        db->open(DB_NAME);
        TRACE(_T("database opened"));

        db->key((char*)csPassword.GetBuffer(), csPassword.GetLength());

    }catch(CppSQLite3Exception e){
        return NULL;
    }

通过使用它我们打开我们的加密数据库,然后进行操作。那么我怎么能在我的Java应用程序中做同样的事情呢?此外,密钥(SHA1密钥)可以传递给jar文件,因此唯一的问题仍然是如何使用此密钥在JAVA中打开数据库并在同一数据库上执行操作?

0 个答案:

没有答案